
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<exe-name> is a <version> host application.
Run with -? for options

-------------------------------------------------------------------------------
# A test name that starts with a #
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  yay

-------------------------------------------------------------------------------
#1005: Comparing pointer to int and long (NULL can be either on various
       systems)
-------------------------------------------------------------------------------
Decomposition.tests.cpp:<line number>
...............................................................................

Decomposition.tests.cpp:<line number>:
PASSED:
  REQUIRE( fptr == 0 )
with expansion:
  0 == 0

Decomposition.tests.cpp:<line number>:
PASSED:
  REQUIRE( fptr == 0l )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
#1027
-------------------------------------------------------------------------------
Compilation.tests.cpp:<line number>
...............................................................................

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( y.v == 0 )
with expansion:
  0 == 0

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0 == y.v )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
#1147
-------------------------------------------------------------------------------
Compilation.tests.cpp:<line number>
...............................................................................

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( t1 == t2 )
with expansion:
  {?} == {?}

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( t1 != t2 )
with expansion:
  {?} != {?}

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( t1 < t2 )
with expansion:
  {?} < {?}

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( t1 > t2 )
with expansion:
  {?} > {?}

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( t1 <= t2 )
with expansion:
  {?} <= {?}

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( t1 >= t2 )
with expansion:
  {?} >= {?}

-------------------------------------------------------------------------------
#1175 - Hidden Test
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
#1238
-------------------------------------------------------------------------------
Compilation.tests.cpp:<line number>
...............................................................................

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::memcmp(uarr, "123", sizeof(uarr)) == 0 )
with expansion:
  0 == 0
with messages:
  uarr := "123"
  sarr := "456"

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::memcmp(sarr, "456", sizeof(sarr)) == 0 )
with expansion:
  0 == 0
with messages:
  uarr := "123"
  sarr := "456"

-------------------------------------------------------------------------------
#1245
-------------------------------------------------------------------------------
Compilation.tests.cpp:<line number>
...............................................................................

Compilation.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
#748 - captures with unexpected exceptions
  outside assertions
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with messages:
  answer := 42
  expected exception

-------------------------------------------------------------------------------
#748 - captures with unexpected exceptions
  inside REQUIRE_NOTHROW
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
  REQUIRE_NOTHROW( thisThrows() )
due to unexpected exception with messages:
  answer := 42
  expected exception

-------------------------------------------------------------------------------
#748 - captures with unexpected exceptions
  inside REQUIRE_THROWS
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS( thisThrows() )
with message:
  answer := 42

-------------------------------------------------------------------------------
#809
-------------------------------------------------------------------------------
Compilation.tests.cpp:<line number>
...............................................................................

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( 42 == f )
with expansion:
  42 == {?}

-------------------------------------------------------------------------------
#833
-------------------------------------------------------------------------------
Compilation.tests.cpp:<line number>
...............................................................................

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( a == t )
with expansion:
  3 == 3

Compilation.tests.cpp:<line number>:
PASSED:
  CHECK( a == t )
with expansion:
  3 == 3

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS( throws_int(true) )

Compilation.tests.cpp:<line number>:
PASSED:
  CHECK_THROWS_AS( throws_int(true), int )

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( throws_int(false) )

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( "aaa", Catch::EndsWith("aaa") )
with expansion:
  "aaa" ends with: "aaa"

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( templated_tests<int>(3) )
with expansion:
  true

-------------------------------------------------------------------------------
#835 -- errno should not be touched by Catch
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  CHECK( f() == 0 )
with expansion:
  1 == 0

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( errno == 1 )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
#872
-------------------------------------------------------------------------------
Compilation.tests.cpp:<line number>
...............................................................................

Compilation.tests.cpp:<line number>:
PASSED:
  REQUIRE( x == 4 )
with expansion:
  {?} == 4
with message:
  dummy := 0

-------------------------------------------------------------------------------
#961 -- Dynamically created sections should all be reported
  Looped section 0
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  Everything is OK

-------------------------------------------------------------------------------
#961 -- Dynamically created sections should all be reported
  Looped section 1
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  Everything is OK

-------------------------------------------------------------------------------
#961 -- Dynamically created sections should all be reported
  Looped section 2
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  Everything is OK

-------------------------------------------------------------------------------
#961 -- Dynamically created sections should all be reported
  Looped section 3
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  Everything is OK

-------------------------------------------------------------------------------
#961 -- Dynamically created sections should all be reported
  Looped section 4
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  Everything is OK

-------------------------------------------------------------------------------
'Not' checks that should fail
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>: FAILED:
  CHECK( false != false )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( true != true )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( !true )
with expansion:
  false

Condition.tests.cpp:<line number>: FAILED:
  CHECK_FALSE( true )
with expansion:
  !true

Condition.tests.cpp:<line number>: FAILED:
  CHECK( !trueValue )
with expansion:
  false

Condition.tests.cpp:<line number>: FAILED:
  CHECK_FALSE( trueValue )
with expansion:
  !true

Condition.tests.cpp:<line number>: FAILED:
  CHECK( !(1 == 1) )
with expansion:
  false

Condition.tests.cpp:<line number>: FAILED:
  CHECK_FALSE( 1 == 1 )

-------------------------------------------------------------------------------
'Not' checks that should succeed
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( false == false )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( true == true )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( !false )
with expansion:
  true

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( false )
with expansion:
  !false

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( !falseValue )
with expansion:
  true

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( falseValue )
with expansion:
  !false

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( !(1 == 2) )
with expansion:
  true

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( 1 == 2 )

-------------------------------------------------------------------------------
(unimplemented) static bools can be evaluated
  compare to true
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( is_true<true>::value == true )
with expansion:
  true == true

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true == is_true<true>::value )
with expansion:
  true == true

-------------------------------------------------------------------------------
(unimplemented) static bools can be evaluated
  compare to false
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( is_true<false>::value == false )
with expansion:
  false == false

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( false == is_true<false>::value )
with expansion:
  false == false

-------------------------------------------------------------------------------
(unimplemented) static bools can be evaluated
  negation
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( !is_true<false>::value )
with expansion:
  true

-------------------------------------------------------------------------------
(unimplemented) static bools can be evaluated
  double negation
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( !!is_true<true>::value )
with expansion:
  true

-------------------------------------------------------------------------------
(unimplemented) static bools can be evaluated
  direct
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( is_true<true>::value )
with expansion:
  true

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( is_true<false>::value )
with expansion:
  !false

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  1 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  2 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  3 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  4 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  5 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  6 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  7 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  8 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  9 < 110

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 101

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 102

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 103

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 104

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 105

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 106

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 107

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 108

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 109

-------------------------------------------------------------------------------
10x10 ints
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  CHECK( x < y )
with expansion:
  10 < 110

-------------------------------------------------------------------------------
A METHOD_AS_TEST_CASE based test run that fails
-------------------------------------------------------------------------------
Class.tests.cpp:<line number>
...............................................................................

Class.tests.cpp:<line number>: FAILED:
  REQUIRE( s == "world" )
with expansion:
  "hello" == "world"

-------------------------------------------------------------------------------
A METHOD_AS_TEST_CASE based test run that succeeds
-------------------------------------------------------------------------------
Class.tests.cpp:<line number>
...............................................................................

Class.tests.cpp:<line number>:
PASSED:
  REQUIRE( s == "hello" )
with expansion:
  "hello" == "hello"

-------------------------------------------------------------------------------
A TEST_CASE_METHOD based test run that fails
-------------------------------------------------------------------------------
Class.tests.cpp:<line number>
...............................................................................

Class.tests.cpp:<line number>: FAILED:
  REQUIRE( m_a == 2 )
with expansion:
  1 == 2

-------------------------------------------------------------------------------
A TEST_CASE_METHOD based test run that succeeds
-------------------------------------------------------------------------------
Class.tests.cpp:<line number>
...............................................................................

Class.tests.cpp:<line number>:
PASSED:
  REQUIRE( m_a == 1 )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
A comparison that uses literals instead of the normal constructor
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == 1.23_a )
with expansion:
  1.23 == Approx( 1.23 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d != 1.22_a )
with expansion:
  1.23 != Approx( 1.22 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( -d == -1.23_a )
with expansion:
  -1.23 == Approx( -1.23 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == 1.2_a .epsilon(.1) )
with expansion:
  1.23 == Approx( 1.2 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d != 1.2_a .epsilon(.001) )
with expansion:
  1.23 != Approx( 1.2 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == 1_a .epsilon(.3) )
with expansion:
  1.23 == Approx( 1.0 )

-------------------------------------------------------------------------------
A couple of nested sections followed by a failure
  Outer
  Inner
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  that's not flying - that's failing in style

-------------------------------------------------------------------------------
A couple of nested sections followed by a failure
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
explicitly with message:
  to infinity and beyond

-------------------------------------------------------------------------------
A failing expression with a non streamable type is still captured
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>: FAILED:
  CHECK( &o1 == &o2 )
with expansion:
  0x<hex digits> == 0x<hex digits>

Tricky.tests.cpp:<line number>: FAILED:
  CHECK( o1 == o2 )
with expansion:
  {?} == {?}

-------------------------------------------------------------------------------
Absolute margin
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 104.0 != Approx(100.0) )
with expansion:
  104.0 != Approx( 100.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 104.0 == Approx(100.0).margin(5) )
with expansion:
  104.0 == Approx( 100.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 104.0 == Approx(100.0).margin(4) )
with expansion:
  104.0 == Approx( 100.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 104.0 != Approx(100.0).margin(3) )
with expansion:
  104.0 != Approx( 100.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 100.3 != Approx(100.0) )
with expansion:
  100.3 != Approx( 100.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 100.3 == Approx(100.0).margin(0.5) )
with expansion:
  100.3 == Approx( 100.0 )

-------------------------------------------------------------------------------
An empty test with no assertions
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................


No assertions in test case 'An empty test with no assertions'

-------------------------------------------------------------------------------
An expression with side-effects should only be evaluated once
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( i++ == 7 )
with expansion:
  7 == 7

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( i++ == 8 )
with expansion:
  8 == 8

-------------------------------------------------------------------------------
An unchecked exception reports the line of the last assertion
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>:
PASSED:
  CHECK( 1 == 1 )

Exception.tests.cpp:<line number>: FAILED:
  {Unknown expression after the reported line}
due to unexpected exception with message:
  unexpected exception

-------------------------------------------------------------------------------
Anonymous test case 1
-------------------------------------------------------------------------------
VariadicMacros.tests.cpp:<line number>
...............................................................................

VariadicMacros.tests.cpp:<line number>:
PASSED:
with message:
  anonymous test case

-------------------------------------------------------------------------------
Approx setters validate their arguments
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( Approx(0).margin(0) )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( Approx(0).margin(1234656) )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( Approx(0).margin(-2), std::domain_error )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( Approx(0).epsilon(0) )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( Approx(0).epsilon(1) )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( Approx(0).epsilon(-0.001), std::domain_error )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( Approx(0).epsilon(1.0001), std::domain_error )

-------------------------------------------------------------------------------
Approx with exactly-representable margin
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  CHECK( 0.25f == Approx(0.0f).margin(0.25f) )
with expansion:
  0.25f == Approx( 0.0 )

Approx.tests.cpp:<line number>:
PASSED:
  CHECK( 0.0f == Approx(0.25f).margin(0.25f) )
with expansion:
  0.0f == Approx( 0.25 )

Approx.tests.cpp:<line number>:
PASSED:
  CHECK( 0.5f == Approx(0.25f).margin(0.25f) )
with expansion:
  0.5f == Approx( 0.25 )

Approx.tests.cpp:<line number>:
PASSED:
  CHECK( 245.0f == Approx(245.25f).margin(0.25f) )
with expansion:
  245.0f == Approx( 245.25 )

Approx.tests.cpp:<line number>:
PASSED:
  CHECK( 245.5f == Approx(245.25f).margin(0.25f) )
with expansion:
  245.5f == Approx( 245.25 )

-------------------------------------------------------------------------------
Approximate PI
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( divide( 22, 7 ) == Approx( 3.141 ).epsilon( 0.001 ) )
with expansion:
  3.1428571429 == Approx( 3.141 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( divide( 22, 7 ) != Approx( 3.141 ).epsilon( 0.0001 ) )
with expansion:
  3.1428571429 != Approx( 3.141 )

-------------------------------------------------------------------------------
Approximate comparisons with different epsilons
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d != Approx( 1.231 ) )
with expansion:
  1.23 != Approx( 1.231 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == Approx( 1.231 ).epsilon( 0.1 ) )
with expansion:
  1.23 == Approx( 1.231 )

-------------------------------------------------------------------------------
Approximate comparisons with floats
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 1.23f == Approx( 1.23f ) )
with expansion:
  1.23f == Approx( 1.2300000191 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0.0f == Approx( 0.0f ) )
with expansion:
  0.0f == Approx( 0.0 )

-------------------------------------------------------------------------------
Approximate comparisons with ints
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 1 == Approx( 1 ) )
with expansion:
  1 == Approx( 1.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0 == Approx( 0 ) )
with expansion:
  0 == Approx( 0.0 )

-------------------------------------------------------------------------------
Approximate comparisons with mixed numeric types
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 1.0f == Approx( 1 ) )
with expansion:
  1.0f == Approx( 1.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0 == Approx( dZero) )
with expansion:
  0 == Approx( 0.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0 == Approx( dSmall ).margin( 0.001 ) )
with expansion:
  0 == Approx( 0.00001 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 1.234f == Approx( dMedium ) )
with expansion:
  1.234f == Approx( 1.234 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( dMedium == Approx( 1.234f ) )
with expansion:
  1.234 == Approx( 1.2339999676 )

-------------------------------------------------------------------------------
Arbitrary predicate matcher
  Function pointer
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1, Predicate<int>(alwaysTrue, "always true") )
with expansion:
  1 matches predicate: "always true"

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1, !Predicate<int>(alwaysFalse, "always false") )
with expansion:
  1 not matches predicate: "always false"

-------------------------------------------------------------------------------
Arbitrary predicate matcher
  Lambdas + different type
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( "Hello olleH", Predicate<std::string>( [] (std::string const& str) -> bool { return str.front() == str.back(); }, "First and last character should be equal") )
with expansion:
  "Hello olleH" matches predicate: "First and last character should be equal"

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( "This wouldn't pass", !Predicate<std::string>( [] (std::string const& str) -> bool { return str.front() == str.back(); } ) )
with expansion:
  "This wouldn't pass" not matches undescribed predicate

-------------------------------------------------------------------------------
Assertions then sections
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )

-------------------------------------------------------------------------------
Assertions then sections
  A section
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )

-------------------------------------------------------------------------------
Assertions then sections
  A section
  Another section
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )

-------------------------------------------------------------------------------
Assertions then sections
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )

-------------------------------------------------------------------------------
Assertions then sections
  A section
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )

-------------------------------------------------------------------------------
Assertions then sections
  A section
  Another other section
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )

-------------------------------------------------------------------------------
Assorted miscellaneous tests
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( INFINITY == Approx(INFINITY) )
with expansion:
  inff == Approx( inf )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( NAN != Approx(NAN) )
with expansion:
  nanf != Approx( nan )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( NAN == Approx(NAN) )
with expansion:
  !(nanf == Approx( nan ))

-------------------------------------------------------------------------------
Bitfields can be captured (#1027)
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( y.v == 0 )
with expansion:
  0 == 0

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0 == y.v )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
Capture and info messages
  Capture should stringify like assertions
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )
with message:
  i := 2

-------------------------------------------------------------------------------
Capture and info messages
  Info should NOT stringify the way assertions do
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )
with message:
  3

-------------------------------------------------------------------------------
Character pretty printing
  Specifically escaped
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  CHECK( tab == '\t' )
with expansion:
  '\t' == '\t'

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  CHECK( newline == '\n' )
with expansion:
  '\n' == '\n'

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  CHECK( carr_return == '\r' )
with expansion:
  '\r' == '\r'

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  CHECK( form_feed == '\f' )
with expansion:
  '\f' == '\f'

-------------------------------------------------------------------------------
Character pretty printing
  General chars
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  CHECK( space == ' ' )
with expansion:
  ' ' == ' '

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == chars[i] )
with expansion:
  'a' == 'a'

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == chars[i] )
with expansion:
  'z' == 'z'

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == chars[i] )
with expansion:
  'A' == 'A'

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == chars[i] )
with expansion:
  'Z' == 'Z'

-------------------------------------------------------------------------------
Character pretty printing
  Low ASCII
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  CHECK( null_terminator == '\0' )
with expansion:
  0 == 0

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == i )
with expansion:
  2 == 2

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == i )
with expansion:
  3 == 3

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == i )
with expansion:
  4 == 4

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == i )
with expansion:
  5 == 5

-------------------------------------------------------------------------------
Commas in various macros are allowed
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} )

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK_THROWS( std::vector<constructor_throws>{constructor_throws{}, constructor_throws{}} )

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} )

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK_NOTHROW( std::vector<int>{1, 2, 3} == std::vector<int>{1, 2, 3} )

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
with expansion:
  { 1, 2 } == { 1, 2 }

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
with expansion:
  { 1, 2 } == { 1, 2 }

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} )
with expansion:
  !({ 1, 2 } == { 1, 2, 3 })

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK_FALSE( std::vector<int>{1, 2} == std::vector<int>{1, 2, 3} )
with expansion:
  !({ 1, 2 } == { 1, 2, 3 })

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK_NOFAIL( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
with expansion:
  { 1, 2 } == { 1, 2 }

Tricky.tests.cpp:<line number>:
PASSED:
  CHECKED_IF( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
with expansion:
  { 1, 2 } == { 1, 2 }

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( true )

Tricky.tests.cpp:<line number>:
PASSED:
  CHECKED_ELSE( std::vector<int>{1, 2} == std::vector<int>{1, 2} )
with expansion:
  { 1, 2 } == { 1, 2 }

-------------------------------------------------------------------------------
Comparing function pointers
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( a )
with expansion:
  0x<hex digits>

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( a == &foo )
with expansion:
  0x<hex digits> == 0x<hex digits>

-------------------------------------------------------------------------------
Comparison with explicitly convertible types
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( td == Approx(10.0) )
with expansion:
  StrongDoubleTypedef(10) == Approx( 10.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx(10.0) == td )
with expansion:
  Approx( 10.0 ) == StrongDoubleTypedef(10)

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( td != Approx(11.0) )
with expansion:
  StrongDoubleTypedef(10) != Approx( 11.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx(11.0) != td )
with expansion:
  Approx( 11.0 ) != StrongDoubleTypedef(10)

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( td <= Approx(10.0) )
with expansion:
  StrongDoubleTypedef(10) <= Approx( 10.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( td <= Approx(11.0) )
with expansion:
  StrongDoubleTypedef(10) <= Approx( 11.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx(10.0) <= td )
with expansion:
  Approx( 10.0 ) <= StrongDoubleTypedef(10)

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx(9.0) <= td )
with expansion:
  Approx( 9.0 ) <= StrongDoubleTypedef(10)

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( td >= Approx(9.0) )
with expansion:
  StrongDoubleTypedef(10) >= Approx( 9.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( td >= Approx(td) )
with expansion:
  StrongDoubleTypedef(10) >= Approx( 10.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx(td) >= td )
with expansion:
  Approx( 10.0 ) >= StrongDoubleTypedef(10)

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx(11.0) >= td )
with expansion:
  Approx( 11.0 ) >= StrongDoubleTypedef(10)

-------------------------------------------------------------------------------
Comparisons between ints where one side is computed
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  CHECK( 54 == 6*9 )
with expansion:
  54 == 54

-------------------------------------------------------------------------------
Comparisons between unsigned ints and negative signed ints match c++ standard
behaviour
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  CHECK( ( -1 > 2u ) )
with expansion:
  true

Condition.tests.cpp:<line number>:
PASSED:
  CHECK( -1 > 2u )
with expansion:
  -1 > 2

Condition.tests.cpp:<line number>:
PASSED:
  CHECK( ( 2u < -1 ) )
with expansion:
  true

Condition.tests.cpp:<line number>:
PASSED:
  CHECK( 2u < -1 )
with expansion:
  2 < -1

Condition.tests.cpp:<line number>:
PASSED:
  CHECK( ( minInt > 2u ) )
with expansion:
  true

Condition.tests.cpp:<line number>:
PASSED:
  CHECK( minInt > 2u )
with expansion:
  -2147483648 > 2

-------------------------------------------------------------------------------
Comparisons with int literals don't warn when mixing signed/ unsigned
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( i == 1 )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( ui == 2 )
with expansion:
  2 == 2

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( l == 3 )
with expansion:
  3 == 3

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( ul == 4 )
with expansion:
  4 == 4

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( c == 5 )
with expansion:
  5 == 5

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( uc == 6 )
with expansion:
  6 == 6

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( 1 == i )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( 2 == ui )
with expansion:
  2 == 2

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( 3 == l )
with expansion:
  3 == 3

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( 4 == ul )
with expansion:
  4 == 4

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( 5 == c )
with expansion:
  5 == 5

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( 6 == uc )
with expansion:
  6 == 6

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( (std::numeric_limits<uint32_t>::max)() > ul )
with expansion:
  4294967295 (0x<hex digits>) > 4

-------------------------------------------------------------------------------
Contains string matcher
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), Contains("not there", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" contains: "not there" (case
  insensitive)

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), Contains("STRING") )
with expansion:
  "this string contains 'abc' as a substring" contains: "STRING"

-------------------------------------------------------------------------------
Custom exceptions can be translated when testing for nothrow
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
  REQUIRE_NOTHROW( throwCustom() )
due to unexpected exception with message:
  custom exception - not std

-------------------------------------------------------------------------------
Custom exceptions can be translated when testing for throwing as something else
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
  REQUIRE_THROWS_AS( throwCustom(), std::exception )
due to unexpected exception with message:
  custom exception - not std

-------------------------------------------------------------------------------
Custom std-exceptions can be custom translated
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with message:
  custom std exception

-------------------------------------------------------------------------------
Default scale is invisible to comparison
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 101.000001 != Approx(100).epsilon(0.01) )
with expansion:
  101.000001 != Approx( 100.0 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::pow(10, -5) != Approx(std::pow(10, -7)) )
with expansion:
  0.00001 != Approx( 0.0000001 )

-------------------------------------------------------------------------------
EndsWith string matcher
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), EndsWith("Substring") )
with expansion:
  "this string contains 'abc' as a substring" ends with: "Substring"

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), EndsWith("this", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" ends with: "this" (case
  insensitive)

-------------------------------------------------------------------------------
Epsilon only applies to Approx's value
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( 101.01 != Approx(100).epsilon(0.01) )
with expansion:
  101.01 != Approx( 100.0 )

-------------------------------------------------------------------------------
Equality checks that should fail
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven == 6 )
with expansion:
  7 == 6

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven == 8 )
with expansion:
  7 == 8

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven == 0 )
with expansion:
  7 == 0

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one == Approx( 9.11f ) )
with expansion:
  9.1f == Approx( 9.1099996567 )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one == Approx( 9.0f ) )
with expansion:
  9.1f == Approx( 9.0 )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one == Approx( 1 ) )
with expansion:
  9.1f == Approx( 1.0 )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one == Approx( 0 ) )
with expansion:
  9.1f == Approx( 0.0 )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.double_pi == Approx( 3.1415 ) )
with expansion:
  3.1415926535 == Approx( 3.1415 )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello == "goodbye" )
with expansion:
  "hello" == "goodbye"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello == "hell" )
with expansion:
  "hello" == "hell"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello == "hello1" )
with expansion:
  "hello" == "hello1"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello.size() == 6 )
with expansion:
  5 == 6

Condition.tests.cpp:<line number>: FAILED:
  CHECK( x == Approx( 1.301 ) )
with expansion:
  1.3 == Approx( 1.301 )

-------------------------------------------------------------------------------
Equality checks that should succeed
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven == 7 )
with expansion:
  7 == 7

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one == Approx( 9.1f ) )
with expansion:
  9.1f == Approx( 9.1000003815 )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.double_pi == Approx( 3.1415926535 ) )
with expansion:
  3.1415926535 == Approx( 3.1415926535 )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello == "hello" )
with expansion:
  "hello" == "hello"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( "hello" == data.str_hello )
with expansion:
  "hello" == "hello"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello.size() == 5 )
with expansion:
  5 == 5

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( x == Approx( 1.3 ) )
with expansion:
  1.3 == Approx( 1.3 )

-------------------------------------------------------------------------------
Equals
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), Equals("this string contains 'abc' as a substring") )
with expansion:
  "this string contains 'abc' as a substring" equals: "this string contains
  'abc' as a substring"

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), Equals("this string contains 'ABC' as a substring", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" equals: "this string contains
  'abc' as a substring" (case insensitive)

-------------------------------------------------------------------------------
Equals string matcher
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), Equals("this string contains 'ABC' as a substring") )
with expansion:
  "this string contains 'abc' as a substring" equals: "this string contains
  'ABC' as a substring"

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), Equals("something else", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" equals: "something else" (case
  insensitive)

-------------------------------------------------------------------------------
Exception as a value (e.g. in REQUIRE_THROWS_MATCHES) can be stringified
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(WhatException{}) == "This exception has overriden what() method" )
with expansion:
  "This exception has overriden what() method"
  ==
  "This exception has overriden what() method"

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(OperatorException{}) == "OperatorException" )
with expansion:
  "OperatorException" == "OperatorException"

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(StringMakerException{}) == "StringMakerException" )
with expansion:
  "StringMakerException"
  ==
  "StringMakerException"

-------------------------------------------------------------------------------
Exception matchers that fail
  No exception
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THROWS_MATCHES( doesNotThrow(), SpecialException, ExceptionMatcher{1} )
because no exception was thrown where one was expected:

Matchers.tests.cpp:<line number>: FAILED:
  REQUIRE_THROWS_MATCHES( doesNotThrow(), SpecialException, ExceptionMatcher{1} )
because no exception was thrown where one was expected:

-------------------------------------------------------------------------------
Exception matchers that fail
  Type mismatch
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THROWS_MATCHES( throwsAsInt(1), SpecialException, ExceptionMatcher{1} )
due to unexpected exception with message:
  Unknown exception

Matchers.tests.cpp:<line number>: FAILED:
  REQUIRE_THROWS_MATCHES( throwsAsInt(1), SpecialException, ExceptionMatcher{1} )
due to unexpected exception with message:
  Unknown exception

-------------------------------------------------------------------------------
Exception matchers that fail
  Contents are wrong
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THROWS_MATCHES( throws(3), SpecialException, ExceptionMatcher{1} )
with expansion:
  SpecialException::what special exception has value of 1

Matchers.tests.cpp:<line number>: FAILED:
  REQUIRE_THROWS_MATCHES( throws(4), SpecialException, ExceptionMatcher{1} )
with expansion:
  SpecialException::what special exception has value of 1

-------------------------------------------------------------------------------
Exception matchers that succeed
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THROWS_MATCHES( throws(1), SpecialException, ExceptionMatcher{1} )
with expansion:
  SpecialException::what special exception has value of 1

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_MATCHES( throws(2), SpecialException, ExceptionMatcher{2} )
with expansion:
  SpecialException::what special exception has value of 2

-------------------------------------------------------------------------------
Exception messages can be tested for
  exact match
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
with expansion:
  "expected exception" equals: "expected exception"

-------------------------------------------------------------------------------
Exception messages can be tested for
  different case
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_WITH( thisThrows(), Equals( "expecteD Exception", Catch::CaseSensitive::No ) )
with expansion:
  "expected exception" equals: "expected exception" (case insensitive)

-------------------------------------------------------------------------------
Exception messages can be tested for
  wildcarded
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_WITH( thisThrows(), StartsWith( "expected" ) )
with expansion:
  "expected exception" starts with: "expected"

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_WITH( thisThrows(), EndsWith( "exception" ) )
with expansion:
  "expected exception" ends with: "exception"

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_WITH( thisThrows(), Contains( "except" ) )
with expansion:
  "expected exception" contains: "except"

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_WITH( thisThrows(), Contains( "exCept", Catch::CaseSensitive::No ) )
with expansion:
  "expected exception" contains: "except" (case insensitive)

-------------------------------------------------------------------------------
Expected exceptions that don't throw or unexpected exceptions fail the test
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
  CHECK_THROWS_AS( thisThrows(), std::string )
due to unexpected exception with message:
  expected exception

Exception.tests.cpp:<line number>: FAILED:
  CHECK_THROWS_AS( thisDoesntThrow(), std::domain_error )
because no exception was thrown where one was expected:

Exception.tests.cpp:<line number>: FAILED:
  CHECK_NOTHROW( thisThrows() )
due to unexpected exception with message:
  expected exception

-------------------------------------------------------------------------------
FAIL aborts the test
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:
explicitly with message:
  This is a failure

-------------------------------------------------------------------------------
FAIL does not require an argument
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:

-------------------------------------------------------------------------------
FAIL_CHECK does not abort the test
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:
explicitly with message:
  This is a failure

Message.tests.cpp:<line number>:
warning:
  This message appears in the output

-------------------------------------------------------------------------------
Factorials are computed
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( Factorial(0) == 1 )
with expansion:
  1 == 1

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( Factorial(1) == 1 )
with expansion:
  1 == 1

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( Factorial(2) == 2 )
with expansion:
  2 == 2

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( Factorial(3) == 6 )
with expansion:
  6 == 6

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( Factorial(10) == 3628800 )
with expansion:
  3628800 (0x<hex digits>) == 3628800 (0x<hex digits>)

-------------------------------------------------------------------------------
Floating point matchers: double
  Margin
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1., WithinAbs(1., 0) )
with expansion:
  1.0 is within 0.0 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 0., WithinAbs(1., 1) )
with expansion:
  0.0 is within 1.0 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 0., !WithinAbs(1., 0.99) )
with expansion:
  0.0 not is within 0.99 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 0., !WithinAbs(1., 0.99) )
with expansion:
  0.0 not is within 0.99 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( NAN, !WithinAbs(NAN, 0) )
with expansion:
  nanf not is within 0.0 of nan

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 11., !WithinAbs(10., 0.5) )
with expansion:
  11.0 not is within 0.5 of 10.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 10., !WithinAbs(11., 0.5) )
with expansion:
  10.0 not is within 0.5 of 11.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( -10., WithinAbs(-10., 0.5) )
with expansion:
  -10.0 is within 0.5 of -10.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( -10., WithinAbs(-9.6, 0.5) )
with expansion:
  -10.0 is within 0.5 of -9.6

-------------------------------------------------------------------------------
Floating point matchers: double
  ULPs
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1., WithinULP(1., 0) )
with expansion:
  1.0 is within 0 ULPs of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( nextafter(1., 2.), WithinULP(1., 1) )
with expansion:
  1.0 is within 1 ULPs of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( nextafter(1., 0.), WithinULP(1., 1) )
with expansion:
  1.0 is within 1 ULPs of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( nextafter(1., 2.), !WithinULP(1., 0) )
with expansion:
  1.0 not is within 0 ULPs of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1., WithinULP(1., 0) )
with expansion:
  1.0 is within 0 ULPs of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( -0., WithinULP(0., 0) )
with expansion:
  -0.0 is within 0 ULPs of 0.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( NAN, !WithinULP(NAN, 123) )
with expansion:
  nanf not is within 123 ULPs of nanf

-------------------------------------------------------------------------------
Floating point matchers: double
  Composed
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1., WithinAbs(1., 0.5) || WithinULP(2., 1) )
with expansion:
  1.0 ( is within 0.5 of 1.0 or is within 1 ULPs of 2.0 )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1., WithinAbs(2., 0.5) || WithinULP(1., 0) )
with expansion:
  1.0 ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0 )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( NAN, !(WithinAbs(NAN, 100) || WithinULP(NAN, 123)) )
with expansion:
  nanf not ( is within 100.0 of nan or is within 123 ULPs of nanf )

-------------------------------------------------------------------------------
Floating point matchers: double
  Constructor validation
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( WithinAbs(1., 0.) )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( WithinAbs(1., -1.), std::domain_error )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( WithinULP(1., 0) )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( WithinULP(1., -1), std::domain_error )

-------------------------------------------------------------------------------
Floating point matchers: float
  Margin
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1.f, WithinAbs(1.f, 0) )
with expansion:
  1.0f is within 0.0 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 0.f, WithinAbs(1.f, 1) )
with expansion:
  0.0f is within 1.0 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 0.f, !WithinAbs(1.f, 0.99f) )
with expansion:
  0.0f not is within 0.9900000095 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 0.f, !WithinAbs(1.f, 0.99f) )
with expansion:
  0.0f not is within 0.9900000095 of 1.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 0.f, WithinAbs(-0.f, 0) )
with expansion:
  0.0f is within 0.0 of -0.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( NAN, !WithinAbs(NAN, 0) )
with expansion:
  nanf not is within 0.0 of nan

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 11.f, !WithinAbs(10.f, 0.5f) )
with expansion:
  11.0f not is within 0.5 of 10.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 10.f, !WithinAbs(11.f, 0.5f) )
with expansion:
  10.0f not is within 0.5 of 11.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( -10.f, WithinAbs(-10.f, 0.5f) )
with expansion:
  -10.0f is within 0.5 of -10.0

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( -10.f, WithinAbs(-9.6f, 0.5f) )
with expansion:
  -10.0f is within 0.5 of -9.6000003815

-------------------------------------------------------------------------------
Floating point matchers: float
  ULPs
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1.f, WithinULP(1.f, 0) )
with expansion:
  1.0f is within 0 ULPs of 1.0f

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( nextafter(1.f, 2.f), WithinULP(1.f, 1) )
with expansion:
  1.0f is within 1 ULPs of 1.0f

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( nextafter(1.f, 0.f), WithinULP(1.f, 1) )
with expansion:
  1.0f is within 1 ULPs of 1.0f

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( nextafter(1.f, 2.f), !WithinULP(1.f, 0) )
with expansion:
  1.0f not is within 0 ULPs of 1.0f

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1.f, WithinULP(1.f, 0) )
with expansion:
  1.0f is within 0 ULPs of 1.0f

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( -0.f, WithinULP(0.f, 0) )
with expansion:
  -0.0f is within 0 ULPs of 0.0f

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( NAN, !WithinULP(NAN, 123) )
with expansion:
  nanf not is within 123 ULPs of nanf

-------------------------------------------------------------------------------
Floating point matchers: float
  Composed
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1.f, WithinAbs(1.f, 0.5) || WithinULP(1.f, 1) )
with expansion:
  1.0f ( is within 0.5 of 1.0 or is within 1 ULPs of 1.0f )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( 1.f, WithinAbs(2.f, 0.5) || WithinULP(1.f, 0) )
with expansion:
  1.0f ( is within 0.5 of 2.0 or is within 0 ULPs of 1.0f )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( NAN, !(WithinAbs(NAN, 100) || WithinULP(NAN, 123)) )
with expansion:
  nanf not ( is within 100.0 of nan or is within 123 ULPs of nanf )

-------------------------------------------------------------------------------
Floating point matchers: float
  Constructor validation
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( WithinAbs(1.f, 0.f) )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( WithinAbs(1.f, -1.f), std::domain_error )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( WithinULP(1.f, 0) )

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( WithinULP(1.f, -1), std::domain_error )

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "a"
  j := 8

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "a"
  j := 9

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "a"
  j := 10

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "a"
  j := 2

-------------------------------------------------------------------------------
Generators
  two
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "a"
  j := 3.141

-------------------------------------------------------------------------------
Generators
  two
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "a"
  j := 1.379

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "b"
  j := 8

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "b"
  j := 9

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "b"
  j := 10

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "b"
  j := 2

-------------------------------------------------------------------------------
Generators
  two
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "b"
  j := 3.141

-------------------------------------------------------------------------------
Generators
  two
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "b"
  j := 1.379

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "c"
  j := 8

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "c"
  j := 9

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "c"
  j := 10

-------------------------------------------------------------------------------
Generators
  one
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "c"
  j := 2

-------------------------------------------------------------------------------
Generators
  two
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "c"
  j := 3.141

-------------------------------------------------------------------------------
Generators
  two
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
with messages:
  i := "c"
  j := 1.379

-------------------------------------------------------------------------------
Generators impl
  range
-------------------------------------------------------------------------------
GeneratorsImpl.tests.cpp:<line number>
...............................................................................

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen.size() == 2 )
with expansion:
  2 == 2

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[0] == 1 )
with expansion:
  1 == 1

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[1] == 2 )
with expansion:
  2 == 2

-------------------------------------------------------------------------------
Generators impl
  fixed values
-------------------------------------------------------------------------------
GeneratorsImpl.tests.cpp:<line number>
...............................................................................

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen.size() == 4 )
with expansion:
  4 == 4

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[0] == 3 )
with expansion:
  3 == 3

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[1] == 1 )
with expansion:
  1 == 1

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[2] == 4 )
with expansion:
  4 == 4

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[3] == 1 )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
Generators impl
  combined
-------------------------------------------------------------------------------
GeneratorsImpl.tests.cpp:<line number>
...............................................................................

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen.size() == 4 )
with expansion:
  4 == 4

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[0] == 1 )
with expansion:
  1 == 1

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[1] == 2 )
with expansion:
  2 == 2

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[2] == 9 )
with expansion:
  9 == 9

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[3] == 7 )
with expansion:
  7 == 7

-------------------------------------------------------------------------------
Generators impl
  values
-------------------------------------------------------------------------------
GeneratorsImpl.tests.cpp:<line number>
...............................................................................

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen.size() == 2 )
with expansion:
  2 == 2

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[0] == 3 )
with expansion:
  3 == 3

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[1] == 1 )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
Generators impl
  values2
-------------------------------------------------------------------------------
GeneratorsImpl.tests.cpp:<line number>
...............................................................................

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen.size() == 2 )
with expansion:
  2 == 2

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[0] == 3 )
with expansion:
  3 == 3

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( gen[1] == 1 )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
Generators impl
  type erasure
-------------------------------------------------------------------------------
GeneratorsImpl.tests.cpp:<line number>
...............................................................................

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( base->size() == 4 )
with expansion:
  4 == 4

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  REQUIRE( typed )
with expansion:
  0x<hex digits>

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( typed->size() == 4 )
with expansion:
  4 == 4

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( (*typed)[0] == 7 )
with expansion:
  7 == 7

GeneratorsImpl.tests.cpp:<line number>:
PASSED:
  CHECK( (*typed)[3] == 11 )
with expansion:
  11 == 11

-------------------------------------------------------------------------------
Greater-than inequalities with different epsilons
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d >= Approx( 1.22 ) )
with expansion:
  1.23 >= Approx( 1.22 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d >= Approx( 1.23 ) )
with expansion:
  1.23 >= Approx( 1.23 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( d >= Approx( 1.24 ) )
with expansion:
  !(1.23 >= Approx( 1.24 ))

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d >= Approx( 1.24 ).epsilon(0.1) )
with expansion:
  1.23 >= Approx( 1.24 )

-------------------------------------------------------------------------------
INFO and WARN do not abort tests
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>:
warning:
  this is a message
  this is a warning


No assertions in test case 'INFO and WARN do not abort tests'

-------------------------------------------------------------------------------
INFO gets logged on failure
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:
  REQUIRE( a == 1 )
with expansion:
  2 == 1
with messages:
  this message should be logged
  so should this

-------------------------------------------------------------------------------
INFO gets logged on failure, even if captured before successful assertions
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>:
PASSED:
  CHECK( a == 2 )
with expansion:
  2 == 2
with message:
  this message may be logged later

Message.tests.cpp:<line number>: FAILED:
  CHECK( a == 1 )
with expansion:
  2 == 1
with messages:
  this message may be logged later
  this message should be logged

Message.tests.cpp:<line number>: FAILED:
  CHECK( a == 0 )
with expansion:
  2 == 0
with messages:
  this message may be logged later
  this message should be logged
  and this, but later

Message.tests.cpp:<line number>:
PASSED:
  CHECK( a == 2 )
with expansion:
  2 == 2
with messages:
  this message may be logged later
  this message should be logged
  and this, but later
  but not this

-------------------------------------------------------------------------------
INFO is reset for each loop
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  0 < 10
with messages:
  current counter 0
  i := 0

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  1 < 10
with messages:
  current counter 1
  i := 1

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  2 < 10
with messages:
  current counter 2
  i := 2

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  3 < 10
with messages:
  current counter 3
  i := 3

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  4 < 10
with messages:
  current counter 4
  i := 4

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  5 < 10
with messages:
  current counter 5
  i := 5

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  6 < 10
with messages:
  current counter 6
  i := 6

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  7 < 10
with messages:
  current counter 7
  i := 7

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  8 < 10
with messages:
  current counter 8
  i := 8

Message.tests.cpp:<line number>:
PASSED:
  REQUIRE( i < 10 )
with expansion:
  9 < 10
with messages:
  current counter 9
  i := 9

Message.tests.cpp:<line number>: FAILED:
  REQUIRE( i < 10 )
with expansion:
  10 < 10
with messages:
  current counter 10
  i := 10

-------------------------------------------------------------------------------
Inequality checks that should fail
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven != 7 )
with expansion:
  7 != 7

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one != Approx( 9.1f ) )
with expansion:
  9.1f != Approx( 9.1000003815 )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.double_pi != Approx( 3.1415926535 ) )
with expansion:
  3.1415926535 != Approx( 3.1415926535 )

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello != "hello" )
with expansion:
  "hello" != "hello"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello.size() != 5 )
with expansion:
  5 != 5

-------------------------------------------------------------------------------
Inequality checks that should succeed
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven != 6 )
with expansion:
  7 != 6

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven != 8 )
with expansion:
  7 != 8

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one != Approx( 9.11f ) )
with expansion:
  9.1f != Approx( 9.1099996567 )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one != Approx( 9.0f ) )
with expansion:
  9.1f != Approx( 9.0 )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one != Approx( 1 ) )
with expansion:
  9.1f != Approx( 1.0 )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one != Approx( 0 ) )
with expansion:
  9.1f != Approx( 0.0 )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.double_pi != Approx( 3.1415 ) )
with expansion:
  3.1415926535 != Approx( 3.1415 )

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello != "goodbye" )
with expansion:
  "hello" != "goodbye"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello != "hell" )
with expansion:
  "hello" != "hell"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello != "hello1" )
with expansion:
  "hello" != "hello1"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello.size() != 6 )
with expansion:
  5 != 6

-------------------------------------------------------------------------------
Less-than inequalities with different epsilons
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d <= Approx( 1.24 ) )
with expansion:
  1.23 <= Approx( 1.24 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d <= Approx( 1.23 ) )
with expansion:
  1.23 <= Approx( 1.23 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( d <= Approx( 1.22 ) )
with expansion:
  !(1.23 <= Approx( 1.22 ))

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d <= Approx( 1.22 ).epsilon(0.1) )
with expansion:
  1.23 <= Approx( 1.22 )

-------------------------------------------------------------------------------
ManuallyRegistered
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  was called

-------------------------------------------------------------------------------
Matchers can be (AllOf) composed with the && operator
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), Contains("string") && Contains("abc") && Contains("substring") && Contains("contains") )
with expansion:
  "this string contains 'abc' as a substring" ( contains: "string" and
  contains: "abc" and contains: "substring" and contains: "contains" )

-------------------------------------------------------------------------------
Matchers can be (AnyOf) composed with the || operator
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), Contains("string") || Contains("different") || Contains("random") )
with expansion:
  "this string contains 'abc' as a substring" ( contains: "string" or contains:
  "different" or contains: "random" )

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching2(), Contains("string") || Contains("different") || Contains("random") )
with expansion:
  "some completely different text that contains one common word" ( contains:
  "string" or contains: "different" or contains: "random" )

-------------------------------------------------------------------------------
Matchers can be composed with both && and ||
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), (Contains("string") || Contains("different")) && Contains("substring") )
with expansion:
  "this string contains 'abc' as a substring" ( ( contains: "string" or
  contains: "different" ) and contains: "substring" )

-------------------------------------------------------------------------------
Matchers can be composed with both && and || - failing
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), (Contains("string") || Contains("different")) && Contains("random") )
with expansion:
  "this string contains 'abc' as a substring" ( ( contains: "string" or
  contains: "different" ) and contains: "random" )

-------------------------------------------------------------------------------
Matchers can be negated (Not) with the ! operator
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), !Contains("different") )
with expansion:
  "this string contains 'abc' as a substring" not contains: "different"

-------------------------------------------------------------------------------
Matchers can be negated (Not) with the ! operator - failing
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), !Contains("substring") )
with expansion:
  "this string contains 'abc' as a substring" not contains: "substring"

-------------------------------------------------------------------------------
Mismatching exception messages failing the test
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_WITH( thisThrows(), "expected exception" )
with expansion:
  "expected exception" equals: "expected exception"

Exception.tests.cpp:<line number>: FAILED:
  REQUIRE_THROWS_WITH( thisThrows(), "should fail" )
with expansion:
  "expected exception" equals: "should fail"

-------------------------------------------------------------------------------
Nice descriptive name
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
warning:
  This one ran


No assertions in test case 'Nice descriptive name'

-------------------------------------------------------------------------------
Non-std exceptions can be translated
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with message:
  custom exception

-------------------------------------------------------------------------------
Objects that evaluated in boolean contexts can be checked
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK( True )
with expansion:
  {?}

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK( !False )
with expansion:
  true

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK_FALSE( False )
with expansion:
  !{?}

-------------------------------------------------------------------------------
Ordering comparison checks that should fail
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven > 7 )
with expansion:
  7 > 7

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven < 7 )
with expansion:
  7 < 7

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven > 8 )
with expansion:
  7 > 8

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven < 6 )
with expansion:
  7 < 6

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven < 0 )
with expansion:
  7 < 0

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven < -1 )
with expansion:
  7 < -1

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven >= 8 )
with expansion:
  7 >= 8

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.int_seven <= 6 )
with expansion:
  7 <= 6

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one < 9 )
with expansion:
  9.1f < 9

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one > 10 )
with expansion:
  9.1f > 10

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.float_nine_point_one > 9.2 )
with expansion:
  9.1f > 9.2

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello > "hello" )
with expansion:
  "hello" > "hello"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello < "hello" )
with expansion:
  "hello" < "hello"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello > "hellp" )
with expansion:
  "hello" > "hellp"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello > "z" )
with expansion:
  "hello" > "z"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello < "hellm" )
with expansion:
  "hello" < "hellm"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello < "a" )
with expansion:
  "hello" < "a"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello >= "z" )
with expansion:
  "hello" >= "z"

Condition.tests.cpp:<line number>: FAILED:
  CHECK( data.str_hello <= "a" )
with expansion:
  "hello" <= "a"

-------------------------------------------------------------------------------
Ordering comparison checks that should succeed
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven < 8 )
with expansion:
  7 < 8

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven > 6 )
with expansion:
  7 > 6

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven > 0 )
with expansion:
  7 > 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven > -1 )
with expansion:
  7 > -1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven >= 7 )
with expansion:
  7 >= 7

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven >= 6 )
with expansion:
  7 >= 6

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven <= 7 )
with expansion:
  7 <= 7

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.int_seven <= 8 )
with expansion:
  7 <= 8

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one > 9 )
with expansion:
  9.1f > 9

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one < 10 )
with expansion:
  9.1f < 10

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.float_nine_point_one < 9.2 )
with expansion:
  9.1f < 9.2

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello <= "hello" )
with expansion:
  "hello" <= "hello"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello >= "hello" )
with expansion:
  "hello" >= "hello"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello < "hellp" )
with expansion:
  "hello" < "hellp"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello < "zebra" )
with expansion:
  "hello" < "zebra"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello > "hellm" )
with expansion:
  "hello" > "hellm"

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str_hello > "a" )
with expansion:
  "hello" > "a"

-------------------------------------------------------------------------------
Output from all sections is reported
  one
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:
explicitly with message:
  Message from section one

-------------------------------------------------------------------------------
Output from all sections is reported
  two
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:
explicitly with message:
  Message from section two

-------------------------------------------------------------------------------
Parse test names and tags
  Empty test spec should have no filters
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Test spec from empty string should have no filters
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches(tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Test spec from just a comma should have no filters
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Test spec from name should have one filter
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Test spec from quoted name should have one filter
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Test spec from name should have one filter
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Wildcard at the start
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( parseTestSpec( "*a" ).matches( tcA ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Wildcard at the end
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( parseTestSpec( "a*" ).matches( tcA ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Wildcard at both ends
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( parseTestSpec( "*a*" ).matches( tcA ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Redundant wildcard at the start
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Redundant wildcard at the end
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Redundant wildcard at both ends
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Wildcard at both ends, redundant at start
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Just wildcard
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Single tag
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Single tag, two matches
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Two tags
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Two tags, spare separated
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  Wildcarded name and tag
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  Single tag exclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  One tag exclusion and one tag inclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  One tag exclusion and one wldcarded name inclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  One tag exclusion, using exclude:, and one wldcarded name inclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  name exclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Parse test names and tags
  wildcarded name exclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  wildcarded name exclusion with tag inclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  wildcarded name exclusion, using exclude:, with tag inclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  two wildcarded names
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  empty tag
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  empty quoted name
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Parse test names and tags
  quoted string followed by tag exclusion
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.hasFilters() == true )
with expansion:
  true == true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcA ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcB ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcC ) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( spec.matches( tcD ) == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Pointers can be compared to null
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( p == 0 )
with expansion:
  0 == 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( p == pNULL )
with expansion:
  0 == 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( p != 0 )
with expansion:
  0x<hex digits> != 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( cp != 0 )
with expansion:
  0x<hex digits> != 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( cpc != 0 )
with expansion:
  0x<hex digits> != 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( returnsNull() == 0 )
with expansion:
  {null string} == 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( returnsConstNull() == 0 )
with expansion:
  {null string} == 0

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0 != p )
with expansion:
  0 != 0x<hex digits>

-------------------------------------------------------------------------------
Process can be configured on command line
  empty args don't cause a crash
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( result )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.processName == "" )
with expansion:
  "" == ""

-------------------------------------------------------------------------------
Process can be configured on command line
  default - no arguments
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( result )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.processName == "test" )
with expansion:
  "test" == "test"

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.shouldDebugBreak == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.abortAfter == -1 )
with expansion:
  -1 == -1

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.noThrow == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.reporterName == "console" )
with expansion:
  "console" == "console"

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK_FALSE( cfg.hasTestFilters() )
with expansion:
  !false

-------------------------------------------------------------------------------
Process can be configured on command line
  test lists
  Specify one test case using
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( result )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.hasTestFilters() )
with expansion:
  true

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.testSpec().matches(fakeTestCase("notIncluded")) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) )
with expansion:
  true

-------------------------------------------------------------------------------
Process can be configured on command line
  test lists
  Specify one test case exclusion using exclude:
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( result )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.hasTestFilters() )
with expansion:
  true

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.testSpec().matches(fakeTestCase("alwaysIncluded")) )
with expansion:
  true

-------------------------------------------------------------------------------
Process can be configured on command line
  test lists
  Specify one test case exclusion using ~
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( result )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.hasTestFilters() )
with expansion:
  true

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.testSpec().matches(fakeTestCase("test1")) == false )
with expansion:
  false == false

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( cfg.testSpec().matches(fakeTestCase("alwaysIncluded")) )
with expansion:
  true

-------------------------------------------------------------------------------
Process can be configured on command line
  reporter
  -r/console
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-r", "console"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.reporterName == "console" )
with expansion:
  "console" == "console"

-------------------------------------------------------------------------------
Process can be configured on command line
  reporter
  -r/xml
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-r", "xml"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.reporterName == "xml" )
with expansion:
  "xml" == "xml"

-------------------------------------------------------------------------------
Process can be configured on command line
  reporter
  --reporter/junit
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "--reporter", "junit"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.reporterName == "junit" )
with expansion:
  "junit" == "junit"

-------------------------------------------------------------------------------
Process can be configured on command line
  reporter
  Only one reporter is accepted
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE_FALSE( cli.parse({ "test", "-r", "xml", "-r", "junit" }) )
with expansion:
  !{?}

-------------------------------------------------------------------------------
Process can be configured on command line
  debugger
  -b
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-b"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.shouldDebugBreak == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Process can be configured on command line
  debugger
  --break
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "--break"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.shouldDebugBreak )
with expansion:
  true

-------------------------------------------------------------------------------
Process can be configured on command line
  abort
  -a aborts after first failure
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-a"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.abortAfter == 1 )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
Process can be configured on command line
  abort
  -x 2 aborts after two failures
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-x", "2"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.abortAfter == 2 )
with expansion:
  2 == 2

-------------------------------------------------------------------------------
Process can be configured on command line
  abort
  -x must be numeric
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( !result )
with expansion:
  true

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( result.errorMessage(), Contains("convert") && Contains("oops") )
with expansion:
  "Unable to convert 'oops' to destination type" ( contains: "convert" and
  contains: "oops" )

-------------------------------------------------------------------------------
Process can be configured on command line
  nothrow
  -e
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-e"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.noThrow )
with expansion:
  true

-------------------------------------------------------------------------------
Process can be configured on command line
  nothrow
  --nothrow
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "--nothrow"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.noThrow )
with expansion:
  true

-------------------------------------------------------------------------------
Process can be configured on command line
  output filename
  -o filename
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-o", "filename.ext"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.outputFilename == "filename.ext" )
with expansion:
  "filename.ext" == "filename.ext"

-------------------------------------------------------------------------------
Process can be configured on command line
  output filename
  --out
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "--out", "filename.ext"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.outputFilename == "filename.ext" )
with expansion:
  "filename.ext" == "filename.ext"

-------------------------------------------------------------------------------
Process can be configured on command line
  combinations
  Single character flags can be combined
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "-abe"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.abortAfter == 1 )
with expansion:
  1 == 1

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.shouldDebugBreak )
with expansion:
  true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( config.noThrow == true )
with expansion:
  true == true

-------------------------------------------------------------------------------
Process can be configured on command line
  use-colour
  without option
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.useColour == UseColour::Auto )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
Process can be configured on command line
  use-colour
  auto
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "--use-colour", "auto"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.useColour == UseColour::Auto )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
Process can be configured on command line
  use-colour
  yes
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "--use-colour", "yes"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.useColour == UseColour::Yes )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
Process can be configured on command line
  use-colour
  no
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( cli.parse({"test", "--use-colour", "no"}) )
with expansion:
  {?}

CmdLine.tests.cpp:<line number>:
PASSED:
  REQUIRE( config.useColour == UseColour::No )
with expansion:
  2 == 2

-------------------------------------------------------------------------------
Process can be configured on command line
  use-colour
  error
-------------------------------------------------------------------------------
CmdLine.tests.cpp:<line number>
...............................................................................

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK( !result )
with expansion:
  true

CmdLine.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( result.errorMessage(), Contains( "colour mode must be one of" ) )
with expansion:
  "colour mode must be one of: auto, yes or no. 'wrong' not recognised"
  contains: "colour mode must be one of"

-------------------------------------------------------------------------------
Reconstruction should be based on stringification: #914
-------------------------------------------------------------------------------
Decomposition.tests.cpp:<line number>
...............................................................................

Decomposition.tests.cpp:<line number>: FAILED:
  CHECK( truthy(false) )
with expansion:
  Hey, its truthy!

-------------------------------------------------------------------------------
Regex string matcher
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), Matches("this STRING contains 'abc' as a substring") )
with expansion:
  "this string contains 'abc' as a substring" matches "this STRING contains
  'abc' as a substring" case sensitively

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), Matches("contains 'abc' as a substring") )
with expansion:
  "this string contains 'abc' as a substring" matches "contains 'abc' as a
  substring" case sensitively

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), Matches("this string contains 'abc' as a") )
with expansion:
  "this string contains 'abc' as a substring" matches "this string contains
  'abc' as a" case sensitively

-------------------------------------------------------------------------------
Regression test #1
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( actual, !UnorderedEquals(expected) )
with expansion:
  { 'a', 'b' } not UnorderedEquals: { 'c', 'b' }

-------------------------------------------------------------------------------
SUCCEED counts as a test pass
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>:
PASSED:
with message:
  this is a success

-------------------------------------------------------------------------------
SUCCEED does not require an argument
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
          methods
      Given: No operations precede me
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( before == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
Scenario: BDD tests requiring Fixtures to provide commonly-accessed data or
          methods
      Given: No operations precede me
       When: We get the count
       Then: Subsequently values are higher
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( after > before )
with expansion:
  1 > 0

-------------------------------------------------------------------------------
Scenario: Do that thing with the thing
      Given: This stuff exists
  And given: And some assumption
       When: I do this
       Then: it should do this
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( itDoesThis() )
with expansion:
  true

-------------------------------------------------------------------------------
Scenario: Do that thing with the thing
      Given: This stuff exists
  And given: And some assumption
       When: I do this
       Then: it should do this
        And: do that
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( itDoesThat() )
with expansion:
  true

-------------------------------------------------------------------------------
Scenario: This is a really long scenario name to see how the list command deals
          with wrapping
      Given: A section name that is so long that it cannot fit in a single
             console width
       When: The test headers are printed as part of the normal running of the
             scenario
       Then: The, deliberately very long and overly verbose (you see what I did
             there?) section names must wrap, along with an indent
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
with message:
  boo!

-------------------------------------------------------------------------------
Scenario: Vector resizing affects size and capacity
      Given: an empty vector
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
Scenario: Vector resizing affects size and capacity
      Given: an empty vector
       When: it is made larger
       Then: the size and capacity go up
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 10 )
with expansion:
  10 == 10

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 10 )
with expansion:
  10 >= 10

-------------------------------------------------------------------------------
Scenario: Vector resizing affects size and capacity
      Given: an empty vector
       When: it is made larger
       Then: the size and capacity go up
   And when: it is made smaller again
       Then: the size goes down but the capacity stays the same
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 5 )
with expansion:
  5 == 5

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 10 )
with expansion:
  10 >= 10

-------------------------------------------------------------------------------
Scenario: Vector resizing affects size and capacity
      Given: an empty vector
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
Scenario: Vector resizing affects size and capacity
      Given: an empty vector
       When: we reserve more space
       Then: The capacity is increased but the size remains the same
-------------------------------------------------------------------------------
BDD.tests.cpp:<line number>
...............................................................................

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 10 )
with expansion:
  10 >= 10

BDD.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 0 )
with expansion:
  0 == 0

A string sent directly to stdout
A string sent directly to stderr
A string sent to stderr via clog
-------------------------------------------------------------------------------
Sends stuff to stdout and stderr
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................


No assertions in test case 'Sends stuff to stdout and stderr'

-------------------------------------------------------------------------------
Some simple comparisons between doubles
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == Approx( 1.23 ) )
with expansion:
  1.23 == Approx( 1.23 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d != Approx( 1.22 ) )
with expansion:
  1.23 != Approx( 1.22 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d != Approx( 1.24 ) )
with expansion:
  1.23 != Approx( 1.24 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == 1.23_a )
with expansion:
  1.23 == Approx( 1.23 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d != 1.22_a )
with expansion:
  1.23 != Approx( 1.22 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx( d ) == 1.23 )
with expansion:
  Approx( 1.23 ) == 1.23

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx( d ) != 1.22 )
with expansion:
  Approx( 1.23 ) != 1.22

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( Approx( d ) != 1.24 )
with expansion:
  Approx( 1.23 ) != 1.24

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( INFINITY == Approx(INFINITY) )
with expansion:
  inff == Approx( inf )

Message from section one
-------------------------------------------------------------------------------
Standard output from all sections is reported
  one
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................


No assertions in section 'one'

Message from section two
-------------------------------------------------------------------------------
Standard output from all sections is reported
  two
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................


No assertions in section 'two'

-------------------------------------------------------------------------------
StartsWith string matcher
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), StartsWith("This String") )
with expansion:
  "this string contains 'abc' as a substring" starts with: "This String"

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( testStringForMatching(), StartsWith("string", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" starts with: "string" (case
  insensitive)

-------------------------------------------------------------------------------
Static arrays are convertible to string
  Single item
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify(singular) == "{ 1 }" )
with expansion:
  "{ 1 }" == "{ 1 }"

-------------------------------------------------------------------------------
Static arrays are convertible to string
  Multiple
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify(arr) == "{ 3, 2, 1 }" )
with expansion:
  "{ 3, 2, 1 }" == "{ 3, 2, 1 }"

-------------------------------------------------------------------------------
Static arrays are convertible to string
  Non-trivial inner items
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify(arr) == R"({ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } })" )
with expansion:
  "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"
  ==
  "{ { "1:1", "1:2", "1:3" }, { "2:1", "2:2" } }"

-------------------------------------------------------------------------------
String matchers
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( testStringForMatching(), Contains("string") )
with expansion:
  "this string contains 'abc' as a substring" contains: "string"

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( testStringForMatching(), Contains("string", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" contains: "string" (case
  insensitive)

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), Contains("abc") )
with expansion:
  "this string contains 'abc' as a substring" contains: "abc"

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), Contains("aBC", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" contains: "abc" (case insensitive)
  insensitive)

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), StartsWith("this") )
with expansion:
  "this string contains 'abc' as a substring" starts with: "this"

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), StartsWith("THIS", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" starts with: "this" (case
  insensitive)

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), EndsWith("substring") )
with expansion:
  "this string contains 'abc' as a substring" ends with: "substring"

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( testStringForMatching(), EndsWith(" SuBsTrInG", Catch::CaseSensitive::No) )
with expansion:
  "this string contains 'abc' as a substring" ends with: " substring" (case
  insensitive)

-------------------------------------------------------------------------------
StringRef
  Empty string
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( empty.empty() )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( empty.size() == 0 )
with expansion:
  0 == 0

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::strcmp( empty.c_str(), "" ) == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
StringRef
  From string literal
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( s.empty() == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( s.size() == 5 )
with expansion:
  5 == 5

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isSubstring( s ) == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::strcmp( rawChars, "hello" ) == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
StringRef
  From string literal
  c_str() does not cause copy
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isOwned( s ) == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( s.c_str() == rawChars )
with expansion:
  "hello" == "hello"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isOwned( s ) == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
StringRef
  From sub-string
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( original == "original" )

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isSubstring( original ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isOwned( original ) == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isSubstring( original ) == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isOwned( original ) )
with expansion:
  true

-------------------------------------------------------------------------------
StringRef
  Substrings
  zero-based substring
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( ss.empty() == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( ss.size() == 5 )
with expansion:
  5 == 5

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::strcmp( ss.c_str(), "hello" ) == 0 )
with expansion:
  0 == 0

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( ss == "hello" )
with expansion:
  hello == "hello"

-------------------------------------------------------------------------------
StringRef
  Substrings
  c_str() causes copy
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isSubstring( ss ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isOwned( ss ) == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( rawChars == s.currentData() )
with expansion:
  "hello world!" == "hello world!"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( ss.c_str() != rawChars )
with expansion:
  "hello" != "hello world!"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isSubstring( ss ) == false )
with expansion:
  false == false

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( isOwned( ss ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( ss.currentData() != s.currentData() )
with expansion:
  "hello" != "hello world!"

-------------------------------------------------------------------------------
StringRef
  Substrings
  non-zero-based substring
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( ss.size() == 6 )
with expansion:
  6 == 6

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( std::strcmp( ss.c_str(), "world!" ) == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
StringRef
  Substrings
  Pointer values of full refs should match
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( s.c_str() == s2.c_str() )
with expansion:
  "hello world!" == "hello world!"

-------------------------------------------------------------------------------
StringRef
  Substrings
  Pointer values of substring refs should not match
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( s.c_str() != ss.c_str() )
with expansion:
  "hello world!" != "hello"

-------------------------------------------------------------------------------
StringRef
  Comparisons
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( StringRef("hello") == StringRef("hello") )
with expansion:
  hello == hello

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( StringRef("hello") != StringRef("cello") )
with expansion:
  hello != cello

-------------------------------------------------------------------------------
StringRef
  from std::string
  implicitly constructed
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( sr == "a standard string" )
with expansion:
  a standard string == "a standard string"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( sr.size() == stdStr.size() )
with expansion:
  17 == 17

-------------------------------------------------------------------------------
StringRef
  from std::string
  explicitly constructed
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( sr == "a standard string" )
with expansion:
  a standard string == "a standard string"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( sr.size() == stdStr.size() )
with expansion:
  17 == 17

-------------------------------------------------------------------------------
StringRef
  from std::string
  assigned
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( sr == "a standard string" )
with expansion:
  a standard string == "a standard string"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( sr.size() == stdStr.size() )
with expansion:
  17 == 17

-------------------------------------------------------------------------------
StringRef
  to std::string
  implicitly constructed
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( stdStr == "a stringref" )
with expansion:
  "a stringref" == "a stringref"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( stdStr.size() == sr.size() )
with expansion:
  11 == 11

-------------------------------------------------------------------------------
StringRef
  to std::string
  explicitly constructed
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( stdStr == "a stringref" )
with expansion:
  "a stringref" == "a stringref"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( stdStr.size() == sr.size() )
with expansion:
  11 == 11

-------------------------------------------------------------------------------
StringRef
  to std::string
  assigned
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( stdStr == "a stringref" )
with expansion:
  "a stringref" == "a stringref"

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( stdStr.size() == sr.size() )
with expansion:
  11 == 11

-------------------------------------------------------------------------------
StringRef
  Counting utf-8 codepoints
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( ascii.numberOfCharacters() == ascii.size() )
with expansion:
  39 == 39

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( simpleu8.numberOfCharacters() == 30 )
with expansion:
  30 == 30

String.tests.cpp:<line number>:
PASSED:
  REQUIRE( emojis.numberOfCharacters() == 9 )
with expansion:
  9 == 9

-------------------------------------------------------------------------------
Stringifying std::chrono::duration helpers
-------------------------------------------------------------------------------
ToStringChrono.tests.cpp:<line number>
...............................................................................

ToStringChrono.tests.cpp:<line number>:
PASSED:
  REQUIRE( minute == seconds )
with expansion:
  1 m == 60 s

ToStringChrono.tests.cpp:<line number>:
PASSED:
  REQUIRE( hour != seconds )
with expansion:
  1 h != 60 s

ToStringChrono.tests.cpp:<line number>:
PASSED:
  REQUIRE( micro != milli )
with expansion:
  1 us != 1 ms

ToStringChrono.tests.cpp:<line number>:
PASSED:
  REQUIRE( nano != micro )
with expansion:
  1 ns != 1 us

-------------------------------------------------------------------------------
Stringifying std::chrono::duration with weird ratios
-------------------------------------------------------------------------------
ToStringChrono.tests.cpp:<line number>
...............................................................................

ToStringChrono.tests.cpp:<line number>:
PASSED:
  REQUIRE( half_minute != femto_second )
with expansion:
  1 [30/1]s != 1 fs

ToStringChrono.tests.cpp:<line number>:
PASSED:
  REQUIRE( pico_second != atto_second )
with expansion:
  1 ps != 1 as

-------------------------------------------------------------------------------
Stringifying std::chrono::time_point<system_clock>
-------------------------------------------------------------------------------
ToStringChrono.tests.cpp:<line number>
...............................................................................

ToStringChrono.tests.cpp:<line number>:
PASSED:
  REQUIRE( now != later )
with expansion:
  {iso8601-timestamp}
  !=
  {iso8601-timestamp}

-------------------------------------------------------------------------------
Tabs and newlines show in output
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  CHECK( s1 == s2 )
with expansion:
  "if ($b == 10) {
  		$a	= 20;
  }"
  ==
  "if ($b == 10) {
  	$a = 20;
  }
  "

-------------------------------------------------------------------------------
Tag alias can be registered against tag patterns
  The same tag alias can only be registered once
-------------------------------------------------------------------------------
TagAlias.tests.cpp:<line number>
...............................................................................

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( what, Contains( "[@zzz]" ) )
with expansion:
  "error: tag alias, '[@zzz]' already registered.
  	First seen at: file:2
  	Redefined at: file:10" contains: "[@zzz]"

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( what, Contains( "file" ) )
with expansion:
  "error: tag alias, '[@zzz]' already registered.
  	First seen at: file:2
  	Redefined at: file:10" contains: "file"

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( what, Contains( "2" ) )
with expansion:
  "error: tag alias, '[@zzz]' already registered.
  	First seen at: file:2
  	Redefined at: file:10" contains: "2"

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( what, Contains( "10" ) )
with expansion:
  "error: tag alias, '[@zzz]' already registered.
  	First seen at: file:2
  	Redefined at: file:10" contains: "10"

-------------------------------------------------------------------------------
Tag alias can be registered against tag patterns
  Tag aliases must be of the form [@name]
-------------------------------------------------------------------------------
TagAlias.tests.cpp:<line number>
...............................................................................

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THROWS( registry.add( "[no ampersat]", "", Catch::SourceLineInfo( "file", 3 ) ) )

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THROWS( registry.add( "[the @ is not at the start]", "", Catch::SourceLineInfo( "file", 3 ) ) )

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THROWS( registry.add( "@no square bracket at start]", "", Catch::SourceLineInfo( "file", 3 ) ) )

TagAlias.tests.cpp:<line number>:
PASSED:
  CHECK_THROWS( registry.add( "[@no square bracket at end", "", Catch::SourceLineInfo( "file", 3 ) ) )

-------------------------------------------------------------------------------
Test case with one argument
-------------------------------------------------------------------------------
VariadicMacros.tests.cpp:<line number>
...............................................................................

VariadicMacros.tests.cpp:<line number>:
PASSED:
with message:
  no assertions

-------------------------------------------------------------------------------
Test enum bit values
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( 0x<hex digits> == bit30and31 )
with expansion:
  3221225472 (0x<hex digits>) == 3221225472

-------------------------------------------------------------------------------
The NO_FAIL macro reports a failure but does not fail the test
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>:
FAILED - but was ok:
  CHECK_NOFAIL( 1 == 2 )


No assertions in test case 'The NO_FAIL macro reports a failure but does not fail the test'

-------------------------------------------------------------------------------
This test 'should' fail but doesn't
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
with message:
  oops!

-------------------------------------------------------------------------------
Thrown string literals are translated
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with message:
  For some reason someone is throwing a string literal!

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  successfully close one section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isSuccessfullyCompleted() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isSuccessfullyCompleted() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  fail one section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isSuccessfullyCompleted() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isSuccessfullyCompleted() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  fail one section
  re-enter after failed section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isSuccessfullyCompleted() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  fail one section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isSuccessfullyCompleted() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isSuccessfullyCompleted() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  fail one section
  re-enter after failed section and find next section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isSuccessfullyCompleted() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  successfully close one section, then find another
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  successfully close one section, then find another
  Re-enter - skips S1 and enters S2
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  successfully close one section, then find another
  Re-enter - skips S1 and enters S2
  Successfully close S2
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isSuccessfullyCompleted() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isSuccessfullyCompleted() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  successfully close one section, then find another
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  successfully close one section, then find another
  Re-enter - skips S1 and enters S2
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  successfully close one section, then find another
  Re-enter - skips S1 and enters S2
  fail S2
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( ctx.completedCycle() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isSuccessfullyCompleted() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isSuccessfullyCompleted() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase3.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1c.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2c.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase3.isSuccessfullyCompleted() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  open a nested section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  start a generator
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.index() == 0 )
with expansion:
  0 == 0

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  start a generator
  close outer section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isSuccessfullyCompleted() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  start a generator
  close outer section
  Re-enter for second generation
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.index() == 1 )
with expansion:
  1 == 1

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isComplete() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  start a generator
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.index() == 0 )
with expansion:
  0 == 0

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  start a generator
  Start a new inner section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  start a generator
  Start a new inner section
  Re-enter for second generation
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.index() == 1 )
with expansion:
  1 == 1

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isComplete() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isOpen() )
with expansion:
  true

-------------------------------------------------------------------------------
Tracker
  start a generator
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.index() == 0 )
with expansion:
  0 == 0

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  start a generator
  Fail an inner section
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2.isSuccessfullyCompleted() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase.isComplete() == false )
with expansion:
  false == false

-------------------------------------------------------------------------------
Tracker
  start a generator
  Fail an inner section
  Re-enter for second generation
-------------------------------------------------------------------------------
PartTracker.tests.cpp:<line number>
...............................................................................

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.index() == 0 )
with expansion:
  0 == 0

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2b.isOpen() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1b.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1b.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase2.isComplete() == false )
with expansion:
  false == false

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase3.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1c.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1c.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1c.index() == 1 )
with expansion:
  1 == 1

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2c.isOpen() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s2c.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( g1c.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( s1c.isComplete() )
with expansion:
  true

PartTracker.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCase3.isComplete() )
with expansion:
  true

-------------------------------------------------------------------------------
Unexpected exceptions can be translated
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with message:
  3.14

-------------------------------------------------------------------------------
Use a custom approx
-------------------------------------------------------------------------------
Approx.tests.cpp:<line number>
...............................................................................

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == approx( 1.23 ) )
with expansion:
  1.23 == Approx( 1.23 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == approx( 1.22 ) )
with expansion:
  1.23 == Approx( 1.22 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d == approx( 1.24 ) )
with expansion:
  1.23 == Approx( 1.24 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( d != approx( 1.25 ) )
with expansion:
  1.23 != Approx( 1.25 )

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( approx( d ) == 1.23 )
with expansion:
  Approx( 1.23 ) == 1.23

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( approx( d ) == 1.22 )
with expansion:
  Approx( 1.23 ) == 1.22

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( approx( d ) == 1.24 )
with expansion:
  Approx( 1.23 ) == 1.24

Approx.tests.cpp:<line number>:
PASSED:
  REQUIRE( approx( d ) != 1.25 )
with expansion:
  Approx( 1.23 ) != 1.25

-------------------------------------------------------------------------------
Variadic macros
  Section with one argument
-------------------------------------------------------------------------------
VariadicMacros.tests.cpp:<line number>
...............................................................................

VariadicMacros.tests.cpp:<line number>:
PASSED:
with message:
  no assertions

-------------------------------------------------------------------------------
Vector matchers
  Contains (element)
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, VectorContains(1) )
with expansion:
  { 1, 2, 3 } Contains: 1

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, VectorContains(2) )
with expansion:
  { 1, 2, 3 } Contains: 2

-------------------------------------------------------------------------------
Vector matchers
  Contains (vector)
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, Contains(v2) )
with expansion:
  { 1, 2, 3 } Contains: { 1, 2 }

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, Contains(v2) )
with expansion:
  { 1, 2, 3 } Contains: { 1, 2, 3 }

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, Contains(empty) )
with expansion:
  { 1, 2, 3 } Contains: {  }

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( empty, Contains(empty) )
with expansion:
  {  } Contains: {  }

-------------------------------------------------------------------------------
Vector matchers
  Contains (element), composed
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, VectorContains(1) && VectorContains(2) )
with expansion:
  { 1, 2, 3 } ( Contains: 1 and Contains: 2 )

-------------------------------------------------------------------------------
Vector matchers
  Equals
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, Equals(v) )
with expansion:
  { 1, 2, 3 } Equals: { 1, 2, 3 }

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( empty, Equals(empty) )
with expansion:
  {  } Equals: {  }

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, Equals(v2) )
with expansion:
  { 1, 2, 3 } Equals: { 1, 2, 3 }

-------------------------------------------------------------------------------
Vector matchers
  UnorderedEquals
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( v, UnorderedEquals(v) )
with expansion:
  { 1, 2, 3 } UnorderedEquals: { 1, 2, 3 }

Matchers.tests.cpp:<line number>:
PASSED:
  CHECK_THAT( empty, UnorderedEquals(empty) )
with expansion:
  {  } UnorderedEquals: {  }

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( permuted, UnorderedEquals(v) )
with expansion:
  { 1, 3, 2 } UnorderedEquals: { 1, 2, 3 }

Matchers.tests.cpp:<line number>:
PASSED:
  REQUIRE_THAT( permuted, UnorderedEquals(v) )
with expansion:
  { 2, 3, 1 } UnorderedEquals: { 1, 2, 3 }

-------------------------------------------------------------------------------
Vector matchers that fail
  Contains (element)
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( v, VectorContains(-1) )
with expansion:
  { 1, 2, 3 } Contains: -1

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( empty, VectorContains(1) )
with expansion:
  {  } Contains: 1

-------------------------------------------------------------------------------
Vector matchers that fail
  Contains (vector)
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( empty, Contains(v) )
with expansion:
  {  } Contains: { 1, 2, 3 }

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( v, Contains(v2) )
with expansion:
  { 1, 2, 3 } Contains: { 1, 2, 4 }

-------------------------------------------------------------------------------
Vector matchers that fail
  Equals
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( v, Equals(v2) )
with expansion:
  { 1, 2, 3 } Equals: { 1, 2 }

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( v2, Equals(v) )
with expansion:
  { 1, 2 } Equals: { 1, 2, 3 }

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( empty, Equals(v) )
with expansion:
  {  } Equals: { 1, 2, 3 }

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( v, Equals(empty) )
with expansion:
  { 1, 2, 3 } Equals: {  }

-------------------------------------------------------------------------------
Vector matchers that fail
  UnorderedEquals
-------------------------------------------------------------------------------
Matchers.tests.cpp:<line number>
...............................................................................

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( v, UnorderedEquals(empty) )
with expansion:
  { 1, 2, 3 } UnorderedEquals: {  }

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( empty, UnorderedEquals(v) )
with expansion:
  {  } UnorderedEquals: { 1, 2, 3 }

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( permuted, UnorderedEquals(v) )
with expansion:
  { 1, 3 } UnorderedEquals: { 1, 2, 3 }

Matchers.tests.cpp:<line number>: FAILED:
  CHECK_THAT( permuted, UnorderedEquals(v) )
with expansion:
  { 3, 1 } UnorderedEquals: { 1, 2, 3 }

-------------------------------------------------------------------------------
When checked exceptions are thrown they can be expected or unexpected
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS_AS( thisThrows(), std::domain_error )

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_NOTHROW( thisDoesntThrow() )

Exception.tests.cpp:<line number>:
PASSED:
  REQUIRE_THROWS( thisThrows() )

-------------------------------------------------------------------------------
When unchecked exceptions are thrown directly they are always failures
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with message:
  unexpected exception

-------------------------------------------------------------------------------
When unchecked exceptions are thrown during a CHECK the test should continue
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
  CHECK( thisThrows() == 0 )
due to unexpected exception with message:
  expected exception

-------------------------------------------------------------------------------
When unchecked exceptions are thrown during a REQUIRE the test should abort
fail
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
  REQUIRE( thisThrows() == 0 )
due to unexpected exception with message:
  expected exception

-------------------------------------------------------------------------------
When unchecked exceptions are thrown from functions they are always failures
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
  CHECK( thisThrows() == 0 )
due to unexpected exception with message:
  expected exception

-------------------------------------------------------------------------------
When unchecked exceptions are thrown from sections they are always failures
  section name
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with message:
  unexpected exception

-------------------------------------------------------------------------------
When unchecked exceptions are thrown, but caught, they do not affect the test
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................


No assertions in test case 'When unchecked exceptions are thrown, but caught, they do not affect the test'

-------------------------------------------------------------------------------
Where the LHS is not a simple value
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
warning:
  Uncomment the code in this test to check that it gives a sensible compiler
  error


No assertions in test case 'Where the LHS is not a simple value'

-------------------------------------------------------------------------------
Where there is more to the expression after the RHS
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
warning:
  Uncomment the code in this test to check that it gives a sensible compiler
  error


No assertions in test case 'Where there is more to the expression after the RHS'

-------------------------------------------------------------------------------
X/level/0/a
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
X/level/0/b
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
X/level/1/a
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
X/level/1/b
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
XmlEncode
  normal string
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "normal string" ) == "normal string" )
with expansion:
  "normal string" == "normal string"

-------------------------------------------------------------------------------
XmlEncode
  empty string
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "" ) == "" )
with expansion:
  "" == ""

-------------------------------------------------------------------------------
XmlEncode
  string with ampersand
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "smith & jones" ) == "smith &amp; jones" )
with expansion:
  "smith &amp; jones" == "smith &amp; jones"

-------------------------------------------------------------------------------
XmlEncode
  string with less-than
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "smith < jones" ) == "smith &lt; jones" )
with expansion:
  "smith &lt; jones" == "smith &lt; jones"

-------------------------------------------------------------------------------
XmlEncode
  string with greater-than
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "smith > jones" ) == "smith > jones" )
with expansion:
  "smith > jones" == "smith > jones"

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "smith ]]> jones" ) == "smith ]]&gt; jones" )
with expansion:
  "smith ]]&gt; jones"
  ==
  "smith ]]&gt; jones"

-------------------------------------------------------------------------------
XmlEncode
  string with quotes
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( stringWithQuotes ) == stringWithQuotes )
with expansion:
  "don't "quote" me on that"
  ==
  "don't "quote" me on that"

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( stringWithQuotes, Catch::XmlEncode::ForAttributes ) == "don't &quot;quote&quot; me on that" )
with expansion:
  "don't &quot;quote&quot; me on that"
  ==
  "don't &quot;quote&quot; me on that"

-------------------------------------------------------------------------------
XmlEncode
  string with control char (1)
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "[\x01]" ) == "[\\x01]" )
with expansion:
  "[\x01]" == "[\x01]"

-------------------------------------------------------------------------------
XmlEncode
  string with control char (x7F)
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  REQUIRE( encode( "[\x7F]" ) == "[\\x7F]" )
with expansion:
  "[\x7F]" == "[\x7F]"

-------------------------------------------------------------------------------
XmlEncode: UTF-8
  Valid utf-8 strings
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode(u8"Here be 👾") == u8"Here be 👾" )
with expansion:
  "Here be 👾" == "Here be 👾"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode(u8"šš") == u8"šš" )
with expansion:
  "šš" == "šš"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xDF\xBF") == "\xDF\xBF" )
with expansion:
  "߿" == "߿"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xE0\xA0\x80") == "\xE0\xA0\x80" )
with expansion:
  "ࠀ" == "ࠀ"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xED\x9F\xBF") == "\xED\x9F\xBF" )
with expansion:
  "퟿" == "퟿"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xEE\x80\x80") == "\xEE\x80\x80" )
with expansion:
  "" == ""

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xEF\xBF\xBF") == "\xEF\xBF\xBF" )
with expansion:
  "￿" == "￿"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF0\x90\x80\x80") == "\xF0\x90\x80\x80" )
with expansion:
  "𐀀" == "𐀀"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF4\x8F\xBF\xBF") == "\xF4\x8F\xBF\xBF" )
with expansion:
  "􏿿" == "􏿿"

-------------------------------------------------------------------------------
XmlEncode: UTF-8
  Invalid utf-8 strings
  Various broken strings
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("Here \xFF be 👾") == u8"Here \\xFF be 👾" )
with expansion:
  "Here \xFF be 👾" == "Here \xFF be 👾"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xFF") == "\\xFF" )
with expansion:
  "\xFF" == "\xFF"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xC5\xC5\xA0") == u8"\\xC5Š" )
with expansion:
  "\xC5Š" == "\xC5Š"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF4\x90\x80\x80") == u8"\\xF4\\x90\\x80\\x80" )
with expansion:
  "\xF4\x90\x80\x80" == "\xF4\x90\x80\x80"

-------------------------------------------------------------------------------
XmlEncode: UTF-8
  Invalid utf-8 strings
  Overlong encodings
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xC0\x80") == u8"\\xC0\\x80" )
with expansion:
  "\xC0\x80" == "\xC0\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF0\x80\x80\x80") == u8"\\xF0\\x80\\x80\\x80" )
with expansion:
  "\xF0\x80\x80\x80" == "\xF0\x80\x80\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xC1\xBF") == u8"\\xC1\\xBF" )
with expansion:
  "\xC1\xBF" == "\xC1\xBF"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xE0\x9F\xBF") == u8"\\xE0\\x9F\\xBF" )
with expansion:
  "\xE0\x9F\xBF" == "\xE0\x9F\xBF"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF0\x8F\xBF\xBF") == u8"\\xF0\\x8F\\xBF\\xBF" )
with expansion:
  "\xF0\x8F\xBF\xBF" == "\xF0\x8F\xBF\xBF"

-------------------------------------------------------------------------------
XmlEncode: UTF-8
  Invalid utf-8 strings
  Surrogate pairs
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xED\xA0\x80") == "\xED\xA0\x80" )
with expansion:
  "" == ""

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xED\xAF\xBF") == "\xED\xAF\xBF" )
with expansion:
  "" == ""

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xED\xB0\x80") == "\xED\xB0\x80" )
with expansion:
  "" == ""

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xED\xBF\xBF") == "\xED\xBF\xBF" )
with expansion:
  "" == ""

-------------------------------------------------------------------------------
XmlEncode: UTF-8
  Invalid utf-8 strings
  Invalid start byte
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\x80") == u8"\\x80" )
with expansion:
  "\x80" == "\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\x81") == u8"\\x81" )
with expansion:
  "\x81" == "\x81"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xBC") == u8"\\xBC" )
with expansion:
  "\xBC" == "\xBC"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xBF") == u8"\\xBF" )
with expansion:
  "\xBF" == "\xBF"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF5\x80\x80\x80") == u8"\\xF5\\x80\\x80\\x80" )
with expansion:
  "\xF5\x80\x80\x80" == "\xF5\x80\x80\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF6\x80\x80\x80") == u8"\\xF6\\x80\\x80\\x80" )
with expansion:
  "\xF6\x80\x80\x80" == "\xF6\x80\x80\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF7\x80\x80\x80") == u8"\\xF7\\x80\\x80\\x80" )
with expansion:
  "\xF7\x80\x80\x80" == "\xF7\x80\x80\x80"

-------------------------------------------------------------------------------
XmlEncode: UTF-8
  Invalid utf-8 strings
  Missing continuation byte(s)
-------------------------------------------------------------------------------
Xml.tests.cpp:<line number>
...............................................................................

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xDE") == u8"\\xDE" )
with expansion:
  "\xDE" == "\xDE"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xDF") == u8"\\xDF" )
with expansion:
  "\xDF" == "\xDF"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xE0") == u8"\\xE0" )
with expansion:
  "\xE0" == "\xE0"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xEF") == u8"\\xEF" )
with expansion:
  "\xEF" == "\xEF"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF0") == u8"\\xF0" )
with expansion:
  "\xF0" == "\xF0"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF4") == u8"\\xF4" )
with expansion:
  "\xF4" == "\xF4"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xE0\x80") == u8"\\xE0\\x80" )
with expansion:
  "\xE0\x80" == "\xE0\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xE0\xBF") == u8"\\xE0\\xBF" )
with expansion:
  "\xE0\xBF" == "\xE0\xBF"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xE1\x80") == u8"\\xE1\\x80" )
with expansion:
  "\xE1\x80" == "\xE1\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF0\x80") == u8"\\xF0\\x80" )
with expansion:
  "\xF0\x80" == "\xF0\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF4\x80") == u8"\\xF4\\x80" )
with expansion:
  "\xF4\x80" == "\xF4\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF0\x80\x80") == u8"\\xF0\\x80\\x80" )
with expansion:
  "\xF0\x80\x80" == "\xF0\x80\x80"

Xml.tests.cpp:<line number>:
PASSED:
  CHECK( encode("\xF4\x80\x80") == u8"\\xF4\\x80\\x80" )
with expansion:
  "\xF4\x80\x80" == "\xF4\x80\x80"

-------------------------------------------------------------------------------
array<int, N> -> toString
-------------------------------------------------------------------------------
ToStringVector.tests.cpp:<line number>
...............................................................................

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( empty ) == "{  }" )
with expansion:
  "{  }" == "{  }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( oneValue ) == "{ 42 }" )
with expansion:
  "{ 42 }" == "{ 42 }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( twoValues ) == "{ 42, 250 }" )
with expansion:
  "{ 42, 250 }" == "{ 42, 250 }"

-------------------------------------------------------------------------------
atomic if
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( x == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
boolean member
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( obj.prop != 0 )
with expansion:
  0x<hex digits> != 0

-------------------------------------------------------------------------------
checkedElse
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECKED_ELSE( flag )
with expansion:
  true

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCheckedElse( true ) )
with expansion:
  true

-------------------------------------------------------------------------------
checkedElse, failing
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  CHECKED_ELSE( flag )
with expansion:
  false

Misc.tests.cpp:<line number>: FAILED:
  REQUIRE( testCheckedElse( false ) )
with expansion:
  false

-------------------------------------------------------------------------------
checkedIf
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECKED_IF( flag )
with expansion:
  true

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( testCheckedIf( true ) )
with expansion:
  true

-------------------------------------------------------------------------------
checkedIf, failing
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  CHECKED_IF( flag )
with expansion:
  false

Misc.tests.cpp:<line number>: FAILED:
  REQUIRE( testCheckedIf( false ) )
with expansion:
  false

-------------------------------------------------------------------------------
comparisons between const int variables
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( unsigned_char_var == 1 )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( unsigned_short_var == 1 )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( unsigned_int_var == 1 )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( unsigned_long_var == 1 )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
comparisons between int variables
-------------------------------------------------------------------------------
Condition.tests.cpp:<line number>
...............................................................................

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( long_var == unsigned_char_var )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( long_var == unsigned_short_var )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( long_var == unsigned_int_var )
with expansion:
  1 == 1

Condition.tests.cpp:<line number>:
PASSED:
  REQUIRE( long_var == unsigned_long_var )
with expansion:
  1 == 1

-------------------------------------------------------------------------------
even more nested SECTION tests
  c
  d (leaf)
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
even more nested SECTION tests
  c
  e (leaf)
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
even more nested SECTION tests
  f (leaf)
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
first tag
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................


No assertions in test case 'first tag'

loose text artifact
-------------------------------------------------------------------------------
has printf
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................


No assertions in test case 'has printf'

-------------------------------------------------------------------------------
just failure
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:
explicitly with message:
  Previous info should not be seen

-------------------------------------------------------------------------------
just info
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................


No assertions in test case 'just info'

-------------------------------------------------------------------------------
long long
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( l == std::numeric_limits<long long>::max() )
with expansion:
  9223372036854775807 (0x<hex digits>)
  ==
  9223372036854775807 (0x<hex digits>)

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 0
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  CHECK( b > a )
with expansion:
  0 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 1
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  CHECK( b > a )
with expansion:
  1 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 2
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  2 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 3
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  3 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 4
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  4 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 5
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  5 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 6
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  6 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 7
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  7 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 8
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  8 > 1

-------------------------------------------------------------------------------
looped SECTION tests
  b is currently: 9
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( b > a )
with expansion:
  9 > 1

-------------------------------------------------------------------------------
looped tests
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  1 == 0
with message:
  Testing if fib[0] (1) is even

Misc.tests.cpp:<line number>: FAILED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  1 == 0
with message:
  Testing if fib[1] (1) is even

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  0 == 0
with message:
  Testing if fib[2] (2) is even

Misc.tests.cpp:<line number>: FAILED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  1 == 0
with message:
  Testing if fib[3] (3) is even

Misc.tests.cpp:<line number>: FAILED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  1 == 0
with message:
  Testing if fib[4] (5) is even

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  0 == 0
with message:
  Testing if fib[5] (8) is even

Misc.tests.cpp:<line number>: FAILED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  1 == 0
with message:
  Testing if fib[6] (13) is even

Misc.tests.cpp:<line number>: FAILED:
  CHECK( ( fib[i] % 2 ) == 0 )
with expansion:
  1 == 0
with message:
  Testing if fib[7] (21) is even

-------------------------------------------------------------------------------
more nested SECTION tests
  doesn't equal
  equal
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  REQUIRE( a == b )
with expansion:
  1 == 2

-------------------------------------------------------------------------------
more nested SECTION tests
  doesn't equal
  not equal
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( a != b )
with expansion:
  1 != 2

-------------------------------------------------------------------------------
more nested SECTION tests
  doesn't equal
  less than
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( a < b )
with expansion:
  1 < 2

-------------------------------------------------------------------------------
nested SECTION tests
  doesn't equal
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( a != b )
with expansion:
  1 != 2

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( b != a )
with expansion:
  2 != 1

-------------------------------------------------------------------------------
nested SECTION tests
  doesn't equal
  not equal
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( a != b )
with expansion:
  1 != 2

-------------------------------------------------------------------------------
non streamable - with conv. op
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( s == "7" )
with expansion:
  "7" == "7"

-------------------------------------------------------------------------------
non-copyable objects
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  CHECK( ti == typeid(int) )
with expansion:
  {?} == {?}

-------------------------------------------------------------------------------
not allowed
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
null strings
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( makeString( false ) != static_cast<char*>(0) )
with expansion:
  "valid string" != {null string}

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( makeString( true ) == static_cast<char*>(0) )
with expansion:
  {null string} == {null string}

-------------------------------------------------------------------------------
null_ptr
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( ptr.get() == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
pair<pair<int,const char *,pair<std::string,int> > -> toString
-------------------------------------------------------------------------------
ToStringPair.tests.cpp:<line number>
...............................................................................

ToStringPair.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( pair ) == "{ { 42, \"Arthur\" }, { \"Ford\", 24 } }" )
with expansion:
  "{ { 42, "Arthur" }, { "Ford", 24 } }"
  ==
  "{ { 42, "Arthur" }, { "Ford", 24 } }"

-------------------------------------------------------------------------------
pointer to class
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>:
PASSED:
  REQUIRE( p == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
random SECTION tests
  doesn't equal
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( a != b )
with expansion:
  1 != 2

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( b != a )
with expansion:
  2 != 1

-------------------------------------------------------------------------------
random SECTION tests
  not equal
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( a != b )
with expansion:
  1 != 2

-------------------------------------------------------------------------------
replaceInPlace
  replace single char
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  CHECK( Catch::replaceInPlace( letters, "b", "z" ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  CHECK( letters == "azcdefcg" )
with expansion:
  "azcdefcg" == "azcdefcg"

-------------------------------------------------------------------------------
replaceInPlace
  replace two chars
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  CHECK( Catch::replaceInPlace( letters, "c", "z" ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  CHECK( letters == "abzdefzg" )
with expansion:
  "abzdefzg" == "abzdefzg"

-------------------------------------------------------------------------------
replaceInPlace
  replace first char
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  CHECK( Catch::replaceInPlace( letters, "a", "z" ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  CHECK( letters == "zbcdefcg" )
with expansion:
  "zbcdefcg" == "zbcdefcg"

-------------------------------------------------------------------------------
replaceInPlace
  replace last char
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  CHECK( Catch::replaceInPlace( letters, "g", "z" ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  CHECK( letters == "abcdefcz" )
with expansion:
  "abcdefcz" == "abcdefcz"

-------------------------------------------------------------------------------
replaceInPlace
  replace all chars
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  CHECK( Catch::replaceInPlace( letters, letters, "replaced" ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  CHECK( letters == "replaced" )
with expansion:
  "replaced" == "replaced"

-------------------------------------------------------------------------------
replaceInPlace
  replace no chars
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  CHECK_FALSE( Catch::replaceInPlace( letters, "x", "z" ) )
with expansion:
  !false

String.tests.cpp:<line number>:
PASSED:
  CHECK( letters == letters )
with expansion:
  "abcdefcg" == "abcdefcg"

-------------------------------------------------------------------------------
replaceInPlace
  escape '
-------------------------------------------------------------------------------
String.tests.cpp:<line number>
...............................................................................

String.tests.cpp:<line number>:
PASSED:
  CHECK( Catch::replaceInPlace( s, "'", "|'" ) )
with expansion:
  true

String.tests.cpp:<line number>:
PASSED:
  CHECK( s == "didn|'t" )
with expansion:
  "didn|'t" == "didn|'t"

-------------------------------------------------------------------------------
second tag
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................


No assertions in test case 'second tag'

-------------------------------------------------------------------------------
send a single char to INFO
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>: FAILED:
  REQUIRE( false )
with message:
  3

-------------------------------------------------------------------------------
sends information to INFO
-------------------------------------------------------------------------------
Message.tests.cpp:<line number>
...............................................................................

Message.tests.cpp:<line number>: FAILED:
  REQUIRE( false )
with messages:
  hi
  i := 7

-------------------------------------------------------------------------------
std::map is convertible string
  empty
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( emptyMap ) == "{  }" )
with expansion:
  "{  }" == "{  }"

-------------------------------------------------------------------------------
std::map is convertible string
  single item
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( map ) == "{ { \"one\", 1 } }" )
with expansion:
  "{ { "one", 1 } }" == "{ { "one", 1 } }"

-------------------------------------------------------------------------------
std::map is convertible string
  several items
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( map ) == "{ { \"abc\", 1 }, { \"def\", 2 }, { \"ghi\", 3 } }" )
with expansion:
  "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"
  ==
  "{ { "abc", 1 }, { "def", 2 }, { "ghi", 3 } }"

-------------------------------------------------------------------------------
std::pair<int,const std::string> -> toString
-------------------------------------------------------------------------------
ToStringPair.tests.cpp:<line number>
...............................................................................

ToStringPair.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(value) == "{ 34, \"xyzzy\" }" )
with expansion:
  "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"

-------------------------------------------------------------------------------
std::pair<int,std::string> -> toString
-------------------------------------------------------------------------------
ToStringPair.tests.cpp:<line number>
...............................................................................

ToStringPair.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( value ) == "{ 34, \"xyzzy\" }" )
with expansion:
  "{ 34, "xyzzy" }" == "{ 34, "xyzzy" }"

-------------------------------------------------------------------------------
std::set is convertible string
  empty
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( emptySet ) == "{  }" )
with expansion:
  "{  }" == "{  }"

-------------------------------------------------------------------------------
std::set is convertible string
  single item
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( set ) == "{ \"one\" }" )
with expansion:
  "{ "one" }" == "{ "one" }"

-------------------------------------------------------------------------------
std::set is convertible string
  several items
-------------------------------------------------------------------------------
ToStringGeneral.tests.cpp:<line number>
...............................................................................

ToStringGeneral.tests.cpp:<line number>:
PASSED:
  REQUIRE( Catch::Detail::stringify( set ) == "{ \"abc\", \"def\", \"ghi\" }" )
with expansion:
  "{ "abc", "def", "ghi" }"
  ==
  "{ "abc", "def", "ghi" }"

-------------------------------------------------------------------------------
std::vector<std::pair<std::string,int> > -> toString
-------------------------------------------------------------------------------
ToStringPair.tests.cpp:<line number>
...............................................................................

ToStringPair.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( pr ) == "{ { \"green\", 55 } }" )
with expansion:
  "{ { "green", 55 } }"
  ==
  "{ { "green", 55 } }"

-------------------------------------------------------------------------------
string literals of different sizes can be compared
-------------------------------------------------------------------------------
Tricky.tests.cpp:<line number>
...............................................................................

Tricky.tests.cpp:<line number>: FAILED:
  REQUIRE( std::string( "first" ) == "second" )
with expansion:
  "first" == "second"

-------------------------------------------------------------------------------
stringify ranges
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(streamable_range{}) == "op<<(streamable_range)" )
with expansion:
  "op<<(streamable_range)"
  ==
  "op<<(streamable_range)"

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(stringmaker_range{}) == "stringmaker(streamable_range)" )
with expansion:
  "stringmaker(streamable_range)"
  ==
  "stringmaker(streamable_range)"

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(just_range{}) == "{ 1, 2, 3, 4 }" )
with expansion:
  "{ 1, 2, 3, 4 }" == "{ 1, 2, 3, 4 }"

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(disabled_range{}) == "{ !!! }" )
with expansion:
  "{ !!! }" == "{ !!! }"

-------------------------------------------------------------------------------
stringify( has_maker )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker>" )
with expansion:
  "StringMaker<has_maker>"
  ==
  "StringMaker<has_maker>"

-------------------------------------------------------------------------------
stringify( has_maker_and_operator )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( item ) == "StringMaker<has_maker_and_operator>" )
with expansion:
  "StringMaker<has_maker_and_operator>"
  ==
  "StringMaker<has_maker_and_operator>"

-------------------------------------------------------------------------------
stringify( has_neither )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(item) == "{ !!! }" )
with expansion:
  "{ !!! }" == "{ !!! }"

-------------------------------------------------------------------------------
stringify( has_operator )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( item ) == "operator<<( has_operator )" )
with expansion:
  "operator<<( has_operator )"
  ==
  "operator<<( has_operator )"

-------------------------------------------------------------------------------
stringify( has_template_operator )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( item ) == "operator<<( has_template_operator )" )
with expansion:
  "operator<<( has_template_operator )"
  ==
  "operator<<( has_template_operator )"

-------------------------------------------------------------------------------
stringify( vectors<has_maker> )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker> }" )
with expansion:
  "{ StringMaker<has_maker> }"
  ==
  "{ StringMaker<has_maker> }"

-------------------------------------------------------------------------------
stringify( vectors<has_maker_and_operator> )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( v ) == "{ StringMaker<has_maker_and_operator> }" )
with expansion:
  "{ StringMaker<has_maker_and_operator> }"
  ==
  "{ StringMaker<has_maker_and_operator> }"

-------------------------------------------------------------------------------
stringify( vectors<has_operator> )
-------------------------------------------------------------------------------
ToStringWhich.tests.cpp:<line number>
...............................................................................

ToStringWhich.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify( v ) == "{ operator<<( has_operator ) }" )
with expansion:
  "{ operator<<( has_operator ) }"
  ==
  "{ operator<<( has_operator ) }"

-------------------------------------------------------------------------------
strlen3
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str.size() == data.len )
with expansion:
  3 == 3

-------------------------------------------------------------------------------
strlen3
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str.size() == data.len )
with expansion:
  3 == 3

-------------------------------------------------------------------------------
strlen3
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str.size() == data.len )
with expansion:
  5 == 5

-------------------------------------------------------------------------------
strlen3
-------------------------------------------------------------------------------
Generators.tests.cpp:<line number>
...............................................................................

Generators.tests.cpp:<line number>:
PASSED:
  REQUIRE( data.str.size() == data.len )
with expansion:
  4 == 4

-------------------------------------------------------------------------------
thrown std::strings are translated
-------------------------------------------------------------------------------
Exception.tests.cpp:<line number>
...............................................................................

Exception.tests.cpp:<line number>: FAILED:
due to unexpected exception with message:
  Why would you throw a std::string?

-------------------------------------------------------------------------------
toString on const wchar_t const pointer returns the string contents
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( result == "\"wide load\"" )
with expansion:
  ""wide load"" == ""wide load""

-------------------------------------------------------------------------------
toString on const wchar_t pointer returns the string contents
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( result == "\"wide load\"" )
with expansion:
  ""wide load"" == ""wide load""

-------------------------------------------------------------------------------
toString on wchar_t const pointer returns the string contents
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( result == "\"wide load\"" )
with expansion:
  ""wide load"" == ""wide load""

-------------------------------------------------------------------------------
toString on wchar_t returns the string contents
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  CHECK( result == "\"wide load\"" )
with expansion:
  ""wide load"" == ""wide load""

-------------------------------------------------------------------------------
toString(enum class w/operator<<)
-------------------------------------------------------------------------------
EnumToString.tests.cpp:<line number>
...............................................................................

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e0) == "E2/V0" )
with expansion:
  "E2/V0" == "E2/V0"

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e1) == "E2/V1" )
with expansion:
  "E2/V1" == "E2/V1"

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e3) == "Unknown enum value 10" )
with expansion:
  "Unknown enum value 10"
  ==
  "Unknown enum value 10"

-------------------------------------------------------------------------------
toString(enum class)
-------------------------------------------------------------------------------
EnumToString.tests.cpp:<line number>
...............................................................................

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e0) == "0" )
with expansion:
  "0" == "0"

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e1) == "1" )
with expansion:
  "1" == "1"

-------------------------------------------------------------------------------
toString(enum w/operator<<)
-------------------------------------------------------------------------------
EnumToString.tests.cpp:<line number>
...............................................................................

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e0) == "E2{0}" )
with expansion:
  "E2{0}" == "E2{0}"

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e1) == "E2{1}" )
with expansion:
  "E2{1}" == "E2{1}"

-------------------------------------------------------------------------------
toString(enum)
-------------------------------------------------------------------------------
EnumToString.tests.cpp:<line number>
...............................................................................

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e0) == "0" )
with expansion:
  "0" == "0"

EnumToString.tests.cpp:<line number>:
PASSED:
  CHECK( ::Catch::Detail::stringify(e1) == "1" )
with expansion:
  "1" == "1"

-------------------------------------------------------------------------------
tuple<>
-------------------------------------------------------------------------------
ToStringTuple.tests.cpp:<line number>
...............................................................................

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "{ }" == ::Catch::Detail::stringify(type{}) )
with expansion:
  "{ }" == "{ }"

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "{ }" == ::Catch::Detail::stringify(value) )
with expansion:
  "{ }" == "{ }"

-------------------------------------------------------------------------------
tuple<float,int>
-------------------------------------------------------------------------------
ToStringTuple.tests.cpp:<line number>
...............................................................................

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "1.2f" == ::Catch::Detail::stringify(float(1.2)) )
with expansion:
  "1.2f" == "1.2f"

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "{ 1.2f, 0 }" == ::Catch::Detail::stringify(type{1.2f,0}) )
with expansion:
  "{ 1.2f, 0 }" == "{ 1.2f, 0 }"

-------------------------------------------------------------------------------
tuple<int>
-------------------------------------------------------------------------------
ToStringTuple.tests.cpp:<line number>
...............................................................................

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "{ 0 }" == ::Catch::Detail::stringify(type{0}) )
with expansion:
  "{ 0 }" == "{ 0 }"

-------------------------------------------------------------------------------
tuple<0,int,const char *>
-------------------------------------------------------------------------------
ToStringTuple.tests.cpp:<line number>
...............................................................................

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "{ 0, 42, \"Catch me\" }" == ::Catch::Detail::stringify(value) )
with expansion:
  "{ 0, 42, "Catch me" }"
  ==
  "{ 0, 42, "Catch me" }"

-------------------------------------------------------------------------------
tuple<string,string>
-------------------------------------------------------------------------------
ToStringTuple.tests.cpp:<line number>
...............................................................................

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "{ \"hello\", \"world\" }" == ::Catch::Detail::stringify(type{"hello","world"}) )
with expansion:
  "{ "hello", "world" }"
  ==
  "{ "hello", "world" }"

-------------------------------------------------------------------------------
tuple<tuple<int>,tuple<>,float>
-------------------------------------------------------------------------------
ToStringTuple.tests.cpp:<line number>
...............................................................................

ToStringTuple.tests.cpp:<line number>:
PASSED:
  CHECK( "{ { 42 }, { }, 1.2f }" == ::Catch::Detail::stringify(value) )
with expansion:
  "{ { 42 }, { }, 1.2f }"
  ==
  "{ { 42 }, { }, 1.2f }"

-------------------------------------------------------------------------------
vec<vec<string,alloc>> -> toString
-------------------------------------------------------------------------------
ToStringVector.tests.cpp:<line number>
...............................................................................

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(v) == "{  }" )
with expansion:
  "{  }" == "{  }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(v) == "{ { \"hello\" }, { \"world\" } }" )
with expansion:
  "{ { "hello" }, { "world" } }"
  ==
  "{ { "hello" }, { "world" } }"

-------------------------------------------------------------------------------
vector<bool> -> toString
-------------------------------------------------------------------------------
ToStringVector.tests.cpp:<line number>
...............................................................................

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(bools) == "{  }" )
with expansion:
  "{  }" == "{  }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(bools) == "{ true }" )
with expansion:
  "{ true }" == "{ true }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(bools) == "{ true, false }" )
with expansion:
  "{ true, false }" == "{ true, false }"

-------------------------------------------------------------------------------
vector<int,allocator> -> toString
-------------------------------------------------------------------------------
ToStringVector.tests.cpp:<line number>
...............................................................................

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{  }" )
with expansion:
  "{  }" == "{  }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
with expansion:
  "{ 42 }" == "{ 42 }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
with expansion:
  "{ 42, 250 }" == "{ 42, 250 }"

-------------------------------------------------------------------------------
vector<int> -> toString
-------------------------------------------------------------------------------
ToStringVector.tests.cpp:<line number>
...............................................................................

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{  }" )
with expansion:
  "{  }" == "{  }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42 }" )
with expansion:
  "{ 42 }" == "{ 42 }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{ 42, 250 }" )
with expansion:
  "{ 42, 250 }" == "{ 42, 250 }"

-------------------------------------------------------------------------------
vector<string> -> toString
-------------------------------------------------------------------------------
ToStringVector.tests.cpp:<line number>
...............................................................................

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{  }" )
with expansion:
  "{  }" == "{  }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\" }" )
with expansion:
  "{ "hello" }" == "{ "hello" }"

ToStringVector.tests.cpp:<line number>:
PASSED:
  REQUIRE( ::Catch::Detail::stringify(vv) == "{ \"hello\", \"world\" }" )
with expansion:
  "{ "hello", "world" }"
  ==
  "{ "hello", "world" }"

-------------------------------------------------------------------------------
vectors can be sized and resized
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 5 )
with expansion:
  5 == 5

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 5 )
with expansion:
  5 >= 5

-------------------------------------------------------------------------------
vectors can be sized and resized
  resizing bigger changes size and capacity
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 10 )
with expansion:
  10 == 10

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 10 )
with expansion:
  10 >= 10

-------------------------------------------------------------------------------
vectors can be sized and resized
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 5 )
with expansion:
  5 == 5

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 5 )
with expansion:
  5 >= 5

-------------------------------------------------------------------------------
vectors can be sized and resized
  resizing smaller changes size but not capacity
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 0 )
with expansion:
  0 == 0

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 5 )
with expansion:
  5 >= 5

-------------------------------------------------------------------------------
vectors can be sized and resized
  resizing smaller changes size but not capacity
  We can use the 'swap trick' to reset the capacity
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() == 0 )
with expansion:
  0 == 0

-------------------------------------------------------------------------------
vectors can be sized and resized
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 5 )
with expansion:
  5 == 5

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 5 )
with expansion:
  5 >= 5

-------------------------------------------------------------------------------
vectors can be sized and resized
  reserving bigger changes capacity but not size
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 5 )
with expansion:
  5 == 5

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 10 )
with expansion:
  10 >= 10

-------------------------------------------------------------------------------
vectors can be sized and resized
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 5 )
with expansion:
  5 == 5

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 5 )
with expansion:
  5 >= 5

-------------------------------------------------------------------------------
vectors can be sized and resized
  reserving smaller does not change size or capacity
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.size() == 5 )
with expansion:
  5 == 5

Misc.tests.cpp:<line number>:
PASSED:
  REQUIRE( v.capacity() >= 5 )
with expansion:
  5 >= 5

-------------------------------------------------------------------------------
xmlentitycheck
  embedded xml: <test>it should be possible to embed xml characters, such as <,
                " or &, or even whole <xml>documents</xml> within an attribute</test>
                </test>
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:

-------------------------------------------------------------------------------
xmlentitycheck
  encoded chars: these should all be encoded: &&&"""<<<&"<<&"
-------------------------------------------------------------------------------
Misc.tests.cpp:<line number>
...............................................................................

Misc.tests.cpp:<line number>:
PASSED:

===============================================================================
test cases:  213 |  147 passed |  62 failed |  4 failed as expected
assertions: 1242 | 1099 passed | 122 failed | 21 failed as expected

